Создание ассоциативного массива с помощью строки

Magz

Новичок
Создание ассоциативного массива с помощью строки

Всем привет. Пишу:
PHP:
print_r(array("abc"=>"cde"));
Вижу: Array ( [abc] => cde )
Пишу:
PHP:
$arr_str = '"abc"=>"cde"';
print_r(array($arr_str));
Вижу: Array ( [0] => "abc"=>"cde" )

А нужно, чтобы было как в первом примере. :) Подскажите, пожалуйста, как?
 

zerkms

TDD infected
Команда форума
зачем? откуда у тебя данные в таком идиотском виде?
 

Magz

Новичок
Эти данные хранятся с БД и передаются в функцию, как аргумент. Функция на входе по умолчанию принимает архив.

P.S. Как разбить строку на куски по запятой, потом каждый кусок по "=>" на пару "ключ"-"значение" и запихать в массив я прекрасно представляю. Но не хочется изобретать велосипед.
 

.des.

Поставил пиво кому надо ;-)
Не надо так хранить. Хранить в зависимости от задачи надо

в сериализованном виде (сериализация нативная или своя),
json/xml/etc...,
нормализованные данные.
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Magz
Про [m]serialize[/m] совсем не слышал?
 

Magz

Новичок
Mr_Max, каким образом преобразование массива в строку решает описанную в первом посте проблему?


.des., гениальный совет, спасибо, повешу на стенке. Но я задавал совсем другой вопрос, перечитайте, пожалуйста, мой первый пост.

P.S. Вопрос стоит не в том, как хранить данные (сейчас это невозможно переделать - архитектура такая), а в том, есть ли способ создать массив из строки не разрабатывая свой собственный парсер?
 

zerkms

TDD infected
Команда форума
каким образом преобразование массива в строку решает описанную в первом посте проблему?
Magz
serialize позволяет не решить проблему, а избежать её.

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

Magz

Новичок
zerkms, я не понимаю, зачем разводить офтоп, когда вопрос задан предельно четко? Считай, что у меня спортивный интерес. Есть идеи, как решить именно поставленную задачу?
 

Magz

Новичок
zerkms, снизойдите уж, пожалуйста, до более подробного ответа
PHP:
$arr_str = '"abc"=>"cde"';
print_r(array(eval($arr_str)));
Parse error: syntax error, unexpected T_DOUBLE_ARROW in ...
 

zerkms

TDD infected
Команда форума
Magz
снизойдите до чтения мануала?
http://ru.php.net/eval
тут всё написано более чем понятно.

принцип такой: вы хотите делать правильно - общество подсказывает. вы упираетесь и решаете спортивный вопрос - тогда вы занимаетесь спортом самостоятельно, на пару с документацией.
 

zerkms

TDD infected
Команда форума
Fortop
с другой стороны да, пока человек сам не нагемороится с такими костылями - он не поймёт, почему это плохо :)
 
Сверху