2009-11-01 88 views
5

如果我有一個序列化數組...我怎樣才能追加更多的值?我應該先反序列化它 - >添加數據,然後再次序列化它?PHP如何將數據追加到序列化數組中

+1

很明顯,序列化是最好的方法。但是,如果你有一個巨大的序列化數組,反覆重複這個過程將是非常低效的。陣列是否需要首先序列化? – BraedenP 2009-11-01 22:40:35

回答

14

是的。

function addItem($serializedArray, $item) 
{ 
    $a = unserialize($serializedArray); 
    $a[] = $item; 
    return serialize($a); 
} 
+0

如果他要使用一個函數,那麼通過引用傳遞$ serializedArray可能會更有效率,並讓它直接將新項添加到引用數組中,而不是返回新值並再次設置它。 – BraedenP 2009-11-01 22:57:26

+0

@BraedenP。聽起來這可能是一個很好的改進。我想我還需要多一點時間來命名函數及其變量。 – 2009-11-01 23:01:20

3

反串行化是絕對要走的路。除非你有一個巨大的字符串,否則會強烈建議,除非你想自己製作嚴格的解釋器。

從串行化數組/對象中更改任何內容都應該非常小心 - 如果不更新定義每個結構的所有前面的數字,單個額外字符將會破壞所有內容!

0

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