2009-11-01 17 views
5

シリアル化された配列を持っているとどうすればよいですか?最初にシリアル化を解除する必要がありますか?>データを追加してもう一度シリアル化しますか?PHPシリアル化された配列にデータを追加するにはどうすればいいですか?

+1

明らかに、シリアライズが最善の方法です。しかし、巨大なシリアライズされた配列を持っている場合は、このプロセスを何度も繰り返すことは非常に非効率的になります。配列は最初に直列化される必要がありますか? – BraedenP

答えて

14

はい。

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

もし彼が関数を使うつもりならば、$ serializedArrayを参照渡しし、新しい値を返して再設定するのではなく、参照された配列に新しい項目を直接追加する方が効率的かもしれません。 @BraedenP。 – BraedenP

+0

それは良い改善かもしれないように聞こえる。私は、関数とその変数に名前を付けるのにもう少し時間がかかると思います。 –

3

シリアル化を解除する方法は間違いありません。巨大な文字列がある場合を除き、厳密な通訳をしたい場合を除き、強くお勧めします。

シリアル化された配列/オブジェクトから何かを変更するときは、非常に注意深く行う必要があります。構造体のそれぞれを定義するすべての前の数字を更新しないと、

0

はい、これは唯一の(信頼できる)方法です。

関連する問題