W3docs

PHP Array Pop: Der ultimative Leitfaden

Umfassender Leitfaden zu PHP array_pop(): Syntax, Rückgabewert, Neunummerierung der Schlüssel und Stack-Verwendung mit Beispielen.

array_pop() entfernt das letzte Element eines Arrays, gibt es zurück und verkürzt das array um eins. So behandelt man ein PHP-array wie einen Stack — das zuletzt hinzugefügte Element wird als erstes wieder entnommen. Diese Seite behandelt die Syntax, den Rückgabewert, die Nebeneffekte (Neunummerierung numerischer Schlüssel und der interne Zeiger) und wann man diese Funktion einsetzen sollte.

Was array_pop() tut

array_pop() ist eine eingebaute PHP-Funktion, die:

  • das Element am Ende des Arrays entfernt,
  • den Wert dieses entfernten Elements zurückgibt und
  • das array direkt verändert — das übergebene array wird dauerhaft verkürzt.

Wenn die Schlüssel des Arrays numerisch sind (0, 1, 2, …), werden sie nach dem Pop ab 0 neu nummeriert. String-Schlüssel bleiben unverändert. Dieses Verhalten bei der Neunummerierung entspricht dem von array_shift() und ist der wichtigste Stolperstein, den man im Gedächtnis behalten sollte.

Syntax

array_pop(array &$array): mixed
TeilBedeutung
&$arrayDas array, aus dem gepoppt wird, wird per Referenz übergeben — es wird direkt verändert.
RückgabewertDer Wert des letzten Elements oder null, wenn das array leer ist.

Da $array per Referenz übergeben wird, kann array_pop() nicht auf einem Literal oder einem Funktionsergebnis aufgerufen werden — es muss eine Variable übergeben werden, die ein array enthält.

Das letzte Element entfernen

Das letzte Element herausnehmen und den zurückgegebenen Wert speichern:

php— editable, runs on the server

array_pop() entfernt "cherry", gibt es zurück und lässt $fruits mit zwei Elementen zurück:

cherry
Array
(
    [0] => apple
    [1] => banana
)

Ein leeres array poppen

Wenn das array bereits leer ist, gibt array_pop() null zurück. In modernen PHP-Versionen geschieht dies lautlos, sodass das Ergebnis sicher geprüft werden kann:

php— editable, runs on the server

Ausgabe:

Array is empty
No element to pop

Beachte, dass ein zurückgegebener null-Wert mehrdeutig ist — man kann „das array war leer" nicht von „das letzte Element war tatsächlich null" unterscheiden. Wenn diese Unterscheidung wichtig ist, sollte man count($array) vor dem Poppen prüfen.

array_pop() als Stack verwenden

Kombiniert man array_pop() mit array_push() (oder $array[] = ...), erhält man einen Last-In-First-Out-Stack (LIFO). Eine Schleife mit array_pop() leert das array von hinten:

<?php

$stack = [1, 2, 3, 4, 5];

while (count($stack) > 0) {
    echo array_pop($stack) . " ";
}

?>

Ausgabe — die Elemente werden in umgekehrter Reihenfolge zurückgegeben:

5 4 3 2 1 

Numerische Schlüssel werden neu indiziert

Wenn man aus einem array mit numerischen Schlüsseln poppt und dann mit $array[] ein neues Element hinzufügt, setzt der neue Index an der neu nummerierten Sequenz fort, nicht beim ursprünglichen Maximalschlüssel:

<?php

$data = ["x" => 10, "y" => 20, "z" => 30];
$value = array_pop($data);   // removes "z" => 30

echo $value . "\n";          // 30
print_r($data);

?>
30
Array
(
    [x] => 10
    [y] => 20
)

String-Schlüssel bleiben unverändert erhalten. Bei numerischen Schlüsseln setzt array_pop() diese auf 0, 1, 2, … zurück — das sollte man beachten, wenn anderer Code auf bestimmte Indexwerte angewiesen ist.

Verwandte Funktionen

FunktionWas sie entfernt / hinzufügt
array_pop()Entfernt das letzte Element.
array_push()Fügt ein oder mehrere Elemente am Ende hinzu.
array_shift()Entfernt das erste Element.
array_unshift()Fügt ein oder mehrere Elemente am Anfang hinzu.
array_slice()Extrahiert einen Teilbereich ohne Änderung des Originals (bei normalem Aufruf).

Für einen umfassenderen Überblick über die Funktionsweise von Arrays, siehe PHP Arrays.

Zusammenfassung

  • array_pop() entfernt das letzte Element eines Arrays und gibt es zurück; das array wird dabei per Referenz verändert.
  • Bei einem leeren array wird null zurückgegeben — verwende count(), wenn zwischen einem leeren array und einem echten null-Wert unterschieden werden muss.
  • Es ist das natürliche Werkzeug für Stack-artige (LIFO) Verarbeitung und um das Ende eines Arrays Element für Element zu kürzen.
  • Numerische Schlüssel werden ab 0 neu nummeriert; String-Schlüssel bleiben erhalten.

Übungen

Übung
Was ist die Funktion von array_pop() in PHP?
Was ist die Funktion von array_pop() in PHP?
Was this page helpful?