2009-11-01 11 views
5

Se ho un array serializzato ... come posso aggiungere più valori ad esso? Dovrei prima unserializzare -> aggiungere i dati e poi serializzarli di nuovo?PHP come posso aggiungere dati in un array serializzato

+1

Ovviamente la serializzazione sarà la soluzione migliore. Tuttavia, se si dispone di un enorme array serializzato, ripetere questo processo più e più volte sarà molto inefficiente. L'array ha bisogno di essere serializzato in primo luogo? – BraedenP

risposta

14

Sì.

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

Se sta per utilizzare una funzione, potrebbe essere più efficiente passare $ serializedArray come riferimento e farlo aggiungere il nuovo elemento direttamente alla matrice di riferimento anziché restituire il nuovo valore e impostarlo nuovamente. – BraedenP

+0

@BraedenP. Sembra che potrebbe essere un buon miglioramento. Penso che prenderei anche un po 'più di tempo per nominare la funzione e le sue variabili. –

3

Unserializing è la strada da percorrere, sicuramente. A meno che tu non abbia una stringa enorme, sarebbe vivamente consigliata, a meno che tu non voglia fare il tuo interprete rigoroso.

Cambiare qualsiasi cosa da un array/oggetto serializzato dovrebbe essere fatto con molta attenzione - un singolo carattere in più spezzerebbe tutto se non aggiorni tutti i numeri precedenti che definiscono ogni pezzo di struttura!

0

sì, questo è l'unico (affidabile) modo

Problemi correlati