Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Строку вида массива сделать массивом php
Форумы портала PHP.SU » » Вопросы новичков » Строку вида массива сделать массивом php

Страниц (1): [1]
 

1. Joliat - 06 Декабря, 2016 - 17:37:37 - перейти к сообщению
Добрый день. Подскажите как строку, имеющую формат массива сделать массивом php.
Строка имеет приблизительно следующий вид:
PHP:
скопировать код в буфер обмена
  1. $filter = 'array('meta' => array(array('key' => 'krepezh', 'value' => array( 'Гайки','Болты')), array('key' => 'kolvo-soedinenij', 'value' => array( '14','23'))))';

Спасибо.
2. Мелкий - 06 Декабря, 2016 - 20:31:43 - перейти к сообщению
Изменить формат данных. Например на json
Если невозможно, но вы абсолютно доверяете источнику - то скормить eval'у.
Иначе писать парсер.
3. Joliat - 06 Декабря, 2016 - 21:16:33 - перейти к сообщению
json - хорошая идея, но как закодировать строку? json_encode ничего не делает, кроме обработки латиницы.
Источник - грубо говоря - я же и есть. Подскажите, о каком способе eval идет речь, я с ним не знаком.
4. Мелкий - 06 Декабря, 2016 - 21:31:07 - перейти к сообщению
По поводу eval буду говорить только в единственном ключе - как от него избавится.

json_encode, как указано в мануале, работает с UTF8.
5. Joliat - 06 Декабря, 2016 - 21:49:25 - перейти к сообщению
Спасибо за толчок в нужном направлении. C eval редко встречался и только в JS, даже не думал его применить в php для работы с массивом.
Сделал так:

Еще раз спасибо.

 

Powered by ExBB FM 1.0 RC1