2013-05-09 3 views
1

Я хочу сохранить длинный массив в базе данных mysql, и когда я прочитаю этот массив из базы данных mysql, я хочу, чтобы этот массив вернулся в правильный формат массива. Это возможно?Сохранить и получить массив php через mysql

Другие темы предлагают преобразовать массив в строку с использованием сериализации и взорваться. Но помогут ли они мне вернуть правильный массив? Спасибо.

+0

Какой формат имеет ваш массив? Простые ключевые значения? – Tim

+0

обычный массив, массив ('something' => 'value', .....) – unkn0wn

ответ

3

Вы можете попробовать его самостоятельно.

В качестве альтернативы serailize() вы можете использовать json_encode().

Sidenote: обратная serialize() является unserialize(), не explode().

sidenote: реверс json_encode()json_decode().

Sidenote: Очень стоит прочитать: Discussion of json_encode() vs serialize()

+1

Спасибо, что прояснили. – unkn0wn

0

Обычно serialize и unserialize функции используются для таких целей.

С сериализацией вы можете преобразовать свой массив в строку и получить массив, применяя unserialize в строке, которую вы получаете от сериализации.

И о взрыве: вы также можете использовать его, но вам понадобится использовать функцию implode для сериализации массива. Но он будет работать только с простейшими одномерными массивами:

implode(",", array("val1", "val2", "val3")) = "val1,val2,val3" 
+1

согласны с тем, что 'implode()' может быть полезным для очень простого массива, но он не обрабатывает элементы массива, которые содержат '', что приведет к нежелательным результатам. Тем не менее, 'serialize()' и 'json_encode()' являются предпочтительными. – Raptor

Смежные вопросы