Was ist der beste Weg, um Array-Elemente in PHP zu löschen?

8

Können Sie mir sagen, wie Sie ein Objekt aus dem Array löschen können? Denkst du, dass es gut ist?

    
lovespring 17.11.2009, 10:45
quelle

3 Antworten

8

Das kommt darauf an:

%Vor%

Im Allgemeinen unset() ist sicher für Hashtabellen (string-indizierte Arrays), aber wenn Sie müssen sich auf kontinuierliche numerische Indizes verlassen, die Sie entweder array_splice() verwenden müssen oder eine Kombination aus unset() und array_values() .

    
Stefan Gehrig 17.11.2009, 11:07
quelle
9

Der übliche Weg:

Gemäß dem Handbuch

%Vor%

Der gefilterte Weg:

Es gibt auch die Funktion array_filter () , die sich um das Filtern von Arrays kümmert

%Vor%

Um einen sequentiellen Index zu erhalten, können Sie

verwenden %Vor%

Referenzen
PHP - Löscht ausgewählte Objekte aus einem Array

    
Peter Lindqvist 17.11.2009 10:47
quelle
5

Es kommt darauf an. Wenn Sie ein Element entfernen möchten, ohne Lücken in den Indizes zu verursachen, müssen Sie array_splice:

verwenden %Vor%

Ausgabe:

%Vor%

Die Verwendung von unset kann funktionieren, aber dies führt zu einem nicht kontinuierlichen Index. Dies kann manchmal ein Problem sein, wenn Sie das Array mithilfe von count ($ a) - 1 als Maß für die obere Grenze durchlaufen:

%Vor%

Ausgabe:

%Vor%

Wie Sie sehen, ist count jetzt 3, aber der Index des letzten Elements ist auch 3.

Ich empfehle daher, array_splice für Arrays mit numerischen Indizes zu verwenden und nur für Arrays (Wörterbücher wirklich) mit nicht numerischen Indizes zu verwenden.

    
John 17.11.2009 10:59
quelle

Tags und Links