PHP如何将数据附加到序列化数组中

Posted

技术标签:

【中文标题】PHP如何将数据附加到序列化数组中【英文标题】:PHP how can i append data into a serialized array 【发布时间】:2010-12-12 03:09:09 【问题描述】:

如果我有一个序列化数组...如何向它附加更多值?我应该先反序列化它 -> 添加数据然后再次序列化它吗?

【问题讨论】:

显然序列化将是最好的方法。但是,如果你有一个巨大的序列化数组,一遍又一遍地重复这个过程将是非常低效的。数组首先需要序列化吗? 【参考方案1】:

是的。

function addItem($serializedArray, $item)

   $a = unserialize($serializedArray);
   $a[] = $item;
   return serialize($a);

【讨论】:

如果他要使用一个函数,通过引用传递 $serializedArray 并将新项目直接附加到引用数组而不是返回新值并设置它可能会更有效再次。 @BraedenP。听起来这可能是一个很好的改进。我想我还需要更多时间来命名函数及其变量。【参考方案2】:

反序列化绝对是要走的路。除非你有一个很大的字符串,否则强烈推荐,除非你想制作自己的严格解释器。

更改序列化数组/对象中的任何内容都应该非常小心 - 如果您不更新定义每个结构的所有先前数字,一个额外的字符会破坏一切!

【讨论】:

【参考方案3】:

是的,这是唯一(可靠)的方式

【讨论】:

以上是关于PHP如何将数据附加到序列化数组中的主要内容,如果未能解决你的问题,请参考以下文章

php如何序列化对象数组?

PHP数组序列化和反序列化

理解PHP数组的序列化和反序列化

将序列号属性附加到javascript中的对象数组

如何根据 Python 中的索引时间序列条件将新数据集附加到现有数据集

提取numpy数组中所有1序列的第一个和最后一个索引并将它们附加到列表中?