PHP, как я могу добавить данные в сериализованный массив - PullRequest
5 голосов
/ 02 ноября 2009

Если у меня есть сериализованный массив ... как я могу добавить к нему больше значений? Стоит ли сначала десериализовать его -> добавить данные, а затем снова сериализовать?

Ответы [ 3 ]

14 голосов
/ 02 ноября 2009

Да.

function addItem($serializedArray, $item)
{
   $a = unserialize($serializedArray);
   $a[] = $item;
   return serialize($a);
}
3 голосов
/ 02 ноября 2009

Несериализация - путь, безусловно. Если у вас нет огромной строки, это настоятельно рекомендуется, если вы не хотите сделать своего собственного строгого переводчика.

Изменение чего-либо из сериализованного массива / объекта должно быть сделано очень осторожно - один дополнительный символ сломает все, если вы не обновите все предыдущие числа, определяющие каждый фрагмент структуры!

0 голосов
/ 02 ноября 2009

да, это единственный (надежный) способ

...