2009-11-01 14 views
5

Jeśli mam szeregową tablicę ... w jaki sposób mogę dodać do niej więcej wartości? Czy powinienem najpierw odserializować go -> dodać dane, a następnie ponownie je zserializować?PHP jak dodać dane do szeregowej tablicy

+1

Oczywiście serializacja będzie najlepszą drogą. Jeśli jednak masz dużą serializowaną tablicę, powtarzanie tego procesu w kółko będzie bardzo nieefektywne. Czy tablica musi być serializowana w pierwszej kolejności? – BraedenP

Odpowiedz

14

Tak.

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

Jeśli będzie on używał funkcji, może być bardziej wydajne przekazywanie $ serializedArray przez odniesienie i dołączenie nowego elementu bezpośrednio do tablicy referencyjnej zamiast zwracania nowej wartości i ustawienia jej ponownie. – BraedenP

+0

@BraedenP. Wygląda na to, że może to być dobra poprawa. Myślę, że potrzebowałbym trochę więcej czasu, aby nazwać funkcję i jej zmienne. –

3

Niepożądane jest zdecydowanie droga. Jeśli nie masz dużego sznurka, zdecydowanie zaleca się, chyba że chcesz stworzyć własnego, ścisłego tłumacza.

Zmiana cokolwiek z serializowanej tablicy/obiektu powinna być wykonana bardzo ostrożnie - pojedyncza dodatkowa postać złamie wszystko, jeśli nie zaktualizujesz wszystkich poprzednich liczb definiujących każdy element struktury!