[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как получить несколько переменных?
Страницы: 1, 2
Strannik
Добрый вечер.

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


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


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

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


twin
explode?

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

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

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

user posted image
Strannik
я думал про это

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

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


получу

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

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


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

А как быть дальше?
Winston
preg_split('/[&$]+/', $str, -1, PREG_SPLIT_NO_EMPTY);
Valick
Strannik, а почему нельзя хранить в сессии массив и не искать себе приключения?


_____________
Стимулятор ~yoomoney - 41001303250491
Strannik
Цитата (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"}
Winston
'/[&$]+/'
Вот так напиши шаблон, а то я что то тупанул..
Strannik
Цитата (Valick @ 15.12.2012 - 19:59)
Strannik, а почему нельзя хранить в сессии массив и не искать себе приключения?

Потому как 1 значение - это номер строки одной таблицы базы, а 2-е - это номер строки другой таблицы базы.
Да и просто не очень хочется плодить сессии, что впрочем придется сделать если решение сегодня не найду..
Strannik
Цитата (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" }
Winston
$str='111111&121212$222222&212121$333333&313131';
preg_match_all('/(\d)\\1+/', $str, $m);
print_r($m[0]);

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

Как то так :)

Спасибо как раз то, что нужно)
kaww
preg_match_all("/(\d+)&/",$str , $m);
var_dump($m);
Strannik
Цитата (kaww @ 15.12.2012 - 20:22)
preg_match_all("/(\d+)&/",$str , $m);
var_dump($m);

почти успел)
но все равно спасибо за внимание к вопросу)
Winston
Цитата (kaww @ 15.12.2012 - 19:22)
preg_match_all("/(\d+)&/",$str , $m);

А если будет так написано 121212&111111$222222&212121$313131&333333
То уже не правильно сработает smile.gif
Valick
Цитата
просто не очень хочется плодить сессии

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




_____________
Стимулятор ~yoomoney - 41001303250491
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.