[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Разделение переменной
jalvar
В бд есть поле parameters оно же $row['parameters']
Поле содержит сл.
display=1;
menu_id=1;
Мне нужно чтобы эти параметры были в сл. виде:
$parameters['display']==1
$parameters['menu_id']==1

Думаю понятно что мне нужно сделать, но не пойму как. explode придется применять несколько раз, а это неоправданная нагрузка на сервер и на время. Кто может подсказать



Спустя 8 минут, 24 секунды (15.01.2012 - 13:09) Игорь_Vasinsky написал(а):
ещё раз что содержит $row['parameters'] и в каком виде

Спустя 5 минут, 28 секунд (15.01.2012 - 13:14) killer8080 написал(а):
list($k, $v) = explode('=', $row['parameters'], 2);
$parameters[$k] = $v;
unset($k, $v);

Спустя 43 секунды (15.01.2012 - 13:15) Nikitian написал(а):
Как-то так.

parse_str(str_replace(array("\n","\r",';'),array('&','&',''),$row['parameters']),$parameters);

Спустя 3 минуты, 29 секунд (15.01.2012 - 13:19) jalvar написал(а):
Цитата (killer8080 @ 15.01.2012 - 10:14)
list($k, $v) = explode('=', $row['parameters'], 2);
$parameters[$k] = $v;
unset($k, $v);

Ваш ответ выглядит более правильным спасибо!

Спустя 2 минуты, 45 секунд (15.01.2012 - 13:21) jalvar написал(а):
Цитата (Nikitian @ 15.01.2012 - 10:15)
Как-то так.

parse_str(str_replace(array("\n","\r",';'),array('&','&',''),$row['parameters']),$parameters);

Спасибо большое, работает. То что нужно!

Спустя 5 минут, 59 секунд (15.01.2012 - 13:27) killer8080 написал(а):
Не правильно понял условие задачи :)
Ну как вариант на регулярках
preg_match_all('#([a-z\d_]+)=([^;]+)#isU', $row['parameters'], $m);
$parameters = array_combine($m[1], $m[2]);
echo '<pre>'.print_r($parameters, 1).'</pre>';



_____________
jallvar.oxnull.net - мой блог.
Быстрый ответ:

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