Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
Страницы: (2) [1] 2  ( Перейти к первому непрочитанному сообщению )  
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Как получить несколько переменных?, сессия, массивы, и т.п.
Strannik  
 ۩     Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 806
Пользователь №: 17108
На форуме: 8 лет, 2 месяца, 17 дней
Карма: 0




Добрый вечер.

В сессию занесена строка со случайными параметрами, например
$_SESSION['example']='111111&121212$222222&212121$333333&313131';


Нужно получить массив со значениями
111111,222222,333333


Как это сделать?

P.S.: обращаю внимание, что стоят разные разделители $ и &


PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
twin  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Глухой нуб
******

Профиль
Группа: Администратор
Почтальон группы
Сообщений: 16109
Пользователь №: 6543
На форуме: 8 лет, 7 месяцев, 26 дней
Карма: 303

Трезвый :
6 лет, 5 месяцев, 5 дней


explode?


--------------------
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
PMСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Strannik  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 806
Пользователь №: 17108
На форуме: 8 лет, 2 месяца, 17 дней
Карма: 0




я думал про это

ну сделаю я например

$part=explode('$', $_SESSION['example']);


получу

$part[0]='111111&121212';
$part[1]='222222&212121';
$part[2]='333333&313131';
...
...

$part[n]='nnnnnn&nnnnnn';


Я же не знаю конечное количество элементов в сессии...

А как быть дальше?
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Winston  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме




******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 9509
Пользователь №: 18161
На форуме: 7 лет, 11 месяцев, 6 дней
Карма: 552




preg_split('/[&$]+/', $str, -1, PREG_SPLIT_NO_EMPTY);


Это сообщение отредактировал Winston - 15.12.2012 - 21:07
PMСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 5618
Пользователь №: 35718
На форуме: 4 года, 6 месяцев, 10 дней
Карма: 173




Strannik, а почему нельзя хранить в сессии массив и не искать себе приключения?


--------------------
wmr - R281553014107
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Strannik  
 ۩     Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 806
Пользователь №: 17108
На форуме: 8 лет, 2 месяца, 17 дней
Карма: 0




Цитата (Winston @ 15.12.2012 - 19:29)
preg_split('/&\$/', $str, -1, PREG_SPLIT_NO_EMPTY);

что-то не так, потому как код:

$str='111111&121212$222222&212121$333333&313131';
$array=preg_split('/&\$/', $str, -1, PREG_SPLIT_NO_EMPTY);
var_dump($array);


выводит

array(1) { [0]=> string(41) "111111&121212$222222&212121$333333&313131" }


а нужно, чтобы выводилось

array(1) { [0]=> string(6) "111111", [1]=> string(6) "222222", [2]=> string(6) "333333"}
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Winston  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме




******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 9509
Пользователь №: 18161
На форуме: 7 лет, 11 месяцев, 6 дней
Карма: 552




'/[&$]+/'
Вот так напиши шаблон, а то я что то тупанул..
PMСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Strannik  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 806
Пользователь №: 17108
На форуме: 8 лет, 2 месяца, 17 дней
Карма: 0




Цитата (Valick @ 15.12.2012 - 19:59)
Strannik, а почему нельзя хранить в сессии массив и не искать себе приключения?

Потому как 1 значение - это номер строки одной таблицы базы, а 2-е - это номер строки другой таблицы базы.
Да и просто не очень хочется плодить сессии, что впрочем придется сделать если решение сегодня не найду..
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Strannik  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 806
Пользователь №: 17108
На форуме: 8 лет, 2 месяца, 17 дней
Карма: 0




Цитата (Winston @ 15.12.2012 - 20:06)
'/[&$]+/'
Вот так напиши шаблон, а то я что то тупанул..

как всегда останавливаюсь на регулярных выражениях)

получаю следующее

array(6) { [0]=> string(6) "111111" [1]=> string(6) "121212" [2]=> string(6) "222222" [3]=> string(6) "212121" [4]=> string(6) "333333" [5]=> string(6) "313131" }


В принципе дальше можно сообразить, но вопрос - нельзя ли заносить не все элементы, а только одно значение из двух, т.е. чтобы в конечном варианте получилось так:

array(6) { [0]=> string(6) "111111" [1]=> string(6) "222222" [2]=> string(6) "333333" }
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Winston  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме




******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 9509
Пользователь №: 18161
На форуме: 7 лет, 11 месяцев, 6 дней
Карма: 552




$str='111111&121212$222222&212121$333333&313131';
preg_match_all('/(\d)\\1+/', $str, $m);
print_r($m[0]);

Как то так :)
PMСайт пользователя
    1   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Strannik  
 ۩     Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 806
Пользователь №: 17108
На форуме: 8 лет, 2 месяца, 17 дней
Карма: 0




Цитата (Winston @ 15.12.2012 - 20:19)
$str='111111&1212122222&2121213333&313131';
preg_match_all('/(\d)\\1+/', $str, $m);
print_r($m[0]);

Как то так :)

Спасибо как раз то, что нужно)
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
kaww  
Дата
Цитировать сообщение

Пользователь сейчас на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1784
Пользователь №: 20757
На форуме: 7 лет, 3 месяца, 27 дней
Карма: 186




preg_match_all("/(\d+)&/",$str , $m);
var_dump($m);
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Strannik  
 ۩     Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 806
Пользователь №: 17108
На форуме: 8 лет, 2 месяца, 17 дней
Карма: 0




Цитата (kaww @ 15.12.2012 - 20:22)
preg_match_all("/(\d+)&/",$str , $m);
var_dump($m);

почти успел)
но все равно спасибо за внимание к вопросу)
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Winston  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме




******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 9509
Пользователь №: 18161
На форуме: 7 лет, 11 месяцев, 6 дней
Карма: 552




Цитата (kaww @ 15.12.2012 - 19:22)
preg_match_all("/(\d+)&/",$str , $m);

А если будет так написано 121212&111111$222222&212121$313131&333333
То уже не правильно сработает smile.gif
PMСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 5618
Пользователь №: 35718
На форуме: 4 года, 6 месяцев, 10 дней
Карма: 173




Цитата
просто не очень хочется плодить сессии

blink.gif
что в вашем понимании плодить сессии? сессия она и в африке сессия.
какая вам разница что переменная $_SESSION['example'], что массив $_SESSION['example']? более того все что вы перечислели в массиве сохранить гораздо проще, чем собирать переменную, да еще и потом ломать головы как ее разобрать, если массив можно просто взять, ничего с ним не делая и никак его не обрабатывая, хоть один элемент, хот группу, хоть весь массив целиком.
вы пихаете регулярки туда куда не нужно, сама по себе регулярка это достаточно большая нагрузка и в любой книге написано, что если можно обойтись без регулярок, то нужно обойтись без регулярок.




--------------------
wmr - R281553014107
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темыСтраницы: (2) [1] 2  Ответ в темуСоздание новой темыСоздание опроса