PHP Array Push Funktion: Ein umfassender Leitfaden
Die PHP-Funktion array_push fügt Elemente ans Ende eines Arrays an. Dieser Leitfaden erklärt Syntax, Rückgabewert und verwandte Funktionen.
array_push() fügt ein oder mehrere Elemente am Ende eines Arrays ein und behandelt dieses array wie einen Stack. Es ist die gebräuchlichste Methode, eine Liste in PHP zu erweitern, und gibt nach dem Hinzufügen der Werte die neue Anzahl der Elemente zurück.
Diese Seite behandelt die Syntax, den Rückgabewert von array_push(), das Verhalten mit assoziativen und leeren Arrays, die schnellere []-Kurzschreibweise sowie verwandte Funktionen zum Entfernen oder Voranstellen von Elementen.
Syntax
array_push(array &$array, mixed ...$values): int$array— das zu ändernde array. Es wird per Referenz (&) übergeben, sodass die ursprüngliche Variable direkt geändert wird; eine Neuzuweisung ist nicht erforderlich.$values— ein oder mehrere Werte, die in der angegebenen Reihenfolge angehängt werden.- Rückgabewert — die neue Länge des Arrays (eine Ganzzahl).
Einfaches Beispiel
Das folgende Beispiel beginnt mit drei Früchten und fügt zwei weitere hinzu:
Die neuen Werte werden der Reihe nach hinzugefügt, und $count enthält die aktualisierte Länge:
5
Array
(
[0] => apple
[1] => banana
[2] => cherry
[3] => orange
[4] => peach
)Die []-Kurzschreibweise für einen einzelnen Wert
Wenn nur ein Element angehängt werden soll, erzielt die Syntax $array[] = $value dasselbe Ergebnis und ist schneller, da der Overhead eines Funktionsaufrufs entfällt:
<?php
$colors = array("red", "green");
$colors[] = "blue"; // same as array_push($colors, "blue")
print_r($colors);
?>Array
(
[0] => red
[1] => green
[2] => blue
)Verwende array_push(), wenn mehrere Werte gleichzeitig hinzugefügt werden sollen; nutze [] für einen einzelnen Wert.
Verhalten mit Schlüsseln
array_push() indiziert die angehängten Werte immer mit neuen Integer-Schlüsseln, beginnend nach dem höchsten vorhandenen Integer-Schlüssel des Arrays. Vorhandene string-basierte (assoziative) Schlüssel bleiben unberührt:
<?php
$data = array("name" => "Ann", 5 => "five");
array_push($data, "added");
print_r($data);
?>Array
(
[name] => Ann
[5] => five
[6] => added
)Das neue Element erhält den Index [6] — einen mehr als der größte Integer-Schlüssel (5), nicht [2].
Elemente in ein leeres Array einfügen
Es müssen keine Schlüssel vorab deklariert werden. Das Einfügen in ein leeres array beginnt die Nummerierung bei 0:
<?php
$list = array();
array_push($list, "first", "second");
print_r($list);
?>Array
(
[0] => first
[1] => second
)Häufige Fallstricke
- Änderung in-place. Da das array per Referenz übergeben wird, darf nicht
$arr = array_push($arr, $x)geschrieben werden — das würde das array mit der Ganzzahl-Länge überschreiben.array_push($arr, $x)muss als eigenständige Anweisung aufgerufen werden. - Das Argument muss eine Variable sein. Da der Parameter per Referenz übergeben wird, kann nicht auf ein Literal wie
array_push(array(), "x")gepusht werden. []für einen einzelnen Wert verwenden. Für ein einzelnes Element ist$arr[] = $valueklarer und etwas schneller.
Verwandte Funktionen
array_pop()— entfernt das letzte Element und gibt es zurück (das Gegenteil von Push).array_unshift()— fügt Elemente am Anfang eines Arrays hinzu.array_shift()— entfernt das erste Element.array_merge()— fasst zwei oder mehr Arrays zu einem zusammen.array_splice()— fügt Elemente an beliebiger Position ein oder entfernt sie.