2015-11-08 4 views
-1

мне было интересно, как был построен этот массив, так что я могу дублировать его:Как был построен этот массив?

a:1:{i:0;s:2:"54";}

я был создан из множественного выбора <select> и в этом случае просто был выбран один вариант. Это то, что он выглядит, когда четыре выбраны:

a:4:{i:0;s:2:"65";i:1;s:2:"67";i:2;s:2:"68";i:3;s:2:"64";}

Эти записи в базе данных. Я пытаюсь дублировать вывод из другого <select>

Я предполагаю, что они просто помещают выбранные параметры в массив, но я не уверен, как их дублировать, поэтому мой вывод такой же.

+0

Используйте 'serialize' /' unserialize' – Clive

+0

Это массив, который был [сериализован] (http://php.net/manual/en/function.serialize.php), если вы хотите преобразовать его обратно в array use [unserialize()] (http://php.net/manual/en/function.unserialize.php) –

+0

@ Когда я делаю это, это результат, который я получаю в базе данных 's: 19:" a: 1: {i: 0; s: 2: "54";} ";' то, что мне нужно, это 'a: 1: {i: 0; s: 2:" 54 ";}' – yobddigi

ответ

1

Это сериализованные массивы. Вы можете использовать функцию PHP serialize() с массивом в качестве аргумента. Например:

$serialized = serialize(Array("1", "2", "3"));

Эта функция необходима для представления массивов в виде строки - если вы просто использовать массив как строку (например, записать его в столбец базы данных, если вы не думаете о правильном моделировании баз данных) , просто показан текст Array. Для некоторых целей вам просто нужен массив как строка, поэтому вы можете использовать serialize или json_encode.

Обратный метод для serialize - unserialize, вы должны передать строку и вернуть массив в этом случае. Конечно, вы можете использовать serialize и unserialize с объектами, тогда свойства будут сериализованы.

+0

, когда я это делаю, это результат я получаю в базе данных 's: 19:" a: 1: {i: 0; s: 2: "54";} ";' то, что мне нужно, это 'a: 1: {i: 0; s: 2: «54»;} ' – yobddigi

+0

@YobdDigital: не понимаю вашу проблему ... – Richard

+0

извините, когда я делаю' $ serialized = serialize (Array ($ var_name)); 'результат, который я получаю, равен' s: 19: "a: 1: {i: 0; s: 2:" 54 ";}"; 'Он устанавливает массив как строку. результат, который мне нужен, - это минус 's: 19:" ";' – yobddigi

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