2009-11-01 25 views
5

Wenn ich ein serialisiertes Array habe ... wie kann ich mehr Werte daran anhängen? Soll ich es zuerst deinialisieren -> Daten hinzufügen und dann erneut serialisieren?PHP Wie kann ich Daten an ein serialisiertes Array anhängen?

+1

Offensichtlich Serialisierung ist der beste Weg zu gehen. Wenn Sie jedoch ein riesiges serialisiertes Array haben, wird die Wiederholung dieses Prozesses sehr ineffizient sein. Muss das Array überhaupt serialisiert werden? – BraedenP

Antwort

14

Ja.

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

Wenn er eine Funktion verwendet, ist es möglicherweise effizienter, $ serializedArray als Referenz zu übergeben und das neue Element direkt an das referenzierte Array anzuhängen, anstatt den neuen Wert zurückzugeben und erneut festzulegen. – BraedenP

+0

@BraedenP. Das klingt, als könnte es eine gute Verbesserung sein. Ich denke, ich würde auch etwas mehr Zeit brauchen, um die Funktion und ihre Variablen zu benennen. –

3

Unserserializing ist definitiv der richtige Weg. Es sei denn, Sie haben eine große Zeichenfolge, es wird dringend empfohlen, es sei denn, Sie möchten Ihren eigenen strikten Interpreter erstellen.

Änderungen an einem serialisierten Array/Objekt sollten sehr sorgfältig vorgenommen werden - ein einzelnes zusätzliches Zeichen würde alles zerstören, wenn Sie nicht alle vorherigen Zahlen aktualisieren, die jedes Strukturelement definieren!

0

Ja, das ist der einzige (zuverlässige) Weg

Verwandte Themen