W3docs

array_unshift()

Erfahren Sie, wie PHP array_unshift() Elemente am Anfang eines Arrays einfügt, numerische Schlüssel neu indiziert und die neue Anzahl zurückgibt.

Suchen Sie eine leistungsstarke Funktion, um neue Elemente am Anfang eines Arrays in PHP hinzuzufügen? Dann ist die array_unshift()-Funktion genau das Richtige. Mit dieser Funktion können Sie ganz einfach ein oder mehrere Elemente an den Anfang eines Arrays einfügen, wobei numerische Schlüssel automatisch neu indiziert und vorhandene Elemente auf höhere Positionen verschoben werden.

Was ist array_unshift()?

Die array_unshift()-Funktion ist eine eingebaute PHP-Funktion, die ein oder mehrere Elemente an den Anfang eines Arrays einfügt. Sie ersetzt keine vorhandenen Elemente — sie verschiebt diese auf höhere Indexpositionen, um Platz für die neuen zu schaffen. Man kann sie sich als Spiegelbild von array_push() vorstellen, das Elemente am Ende anfügt.

Syntax

array_unshift(array &$array, mixed ...$values): int
  • $array — das array, dem Elemente vorangestellt werden. Es wird per Referenz übergeben, sodass die ursprüngliche Variable direkt geändert wird.
  • $values — ein oder mehrere Werte, die am Anfang eingefügt werden. Von links nach rechts aufgelistet erscheinen sie in derselben Reihenfolge am Anfang des Arrays.

Die Funktion gibt die neue Anzahl der Elemente im array zurück (eine ganze Zahl), nicht das array selbst.

Grundlegendes Beispiel

php— editable, runs on the server

Wir fügen "orange" und "lemon" an den Anfang von $fruits ein. Die numerischen Schlüssel werden automatisch ab 0 neu indiziert, und der Rückgabewert 5 ist die neue Elementanzahl. Die Ausgabe lautet:

5
Array
(
    [0] => orange
    [1] => lemon
    [2] => apple
    [3] => banana
    [4] => cherry
)

Wie Schlüssel behandelt werden

Dies ist die häufigste Quelle für Überraschungen. array_unshift() behandelt numerische und string-Schlüssel unterschiedlich:

  • Numerische Schlüssel werden zurückgesetzt. Alle vorhandenen ganzzahligen Schlüssel werden ab 0 neu nummeriert. Eigene ganzzahlige Schlüssel gehen dabei verloren.
  • string-Schlüssel (assoziativ) bleiben erhalten. Nur die neu vorangestellten Elemente erhalten numerische Schlüssel (0, 1, …); vorhandene string-Schlüssel behalten ihre Namen.
<?php

$data = array("name" => "Alice", 10 => "ten", 20 => "twenty");
array_unshift($data, "first");
print_r($data);

?>

Ausgabe — beachten Sie, dass "name" erhalten bleibt, aber aus 10 und 20 werden 1 und 2:

Array
(
    [0] => first
    [name] => Alice
    [1] => ten
    [2] => twenty
)

Wann man sie verwenden sollte

  • Aufbau einer Warteschlange oder Liste, bei der neue Einträge vorne stehen sollen (neueste zuerst).
  • Hinzufügen einer Kopfzeile oder eines Standardwerts vor vorhandenen Daten.
  • Umkehrung der Wirkung von array_shift(), das das erste Element entfernt.

Ein Hinweis zur Performance: Da jedes vorhandene Element neu indiziert und verschoben werden muss, hat array_unshift() eine Komplexität von O(n) — langsamer als array_push(), das O(1) hat. Bei sehr großen Arrays in einer häufig durchlaufenen Schleife empfiehlt es sich, Elemente anzufügen und am Ende einmalig umzukehren, oder eine Datenstruktur wie SplDoublyLinkedList zu verwenden.

Verwandte Funktionen

Übung

Übung
Was ist der Zweck der Funktion array_unshift in PHP?
Was ist der Zweck der Funktion array_unshift in PHP?
Was this page helpful?