Können Sie mir sagen, wie Sie ein Objekt aus dem Array löschen können? Denkst du, dass es gut ist?
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()
.
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%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.