Navigation
 Startseite
 Fachbücher
 Anzeigenmarkt
 Forum
 Webmaster News
 Script Newsletter
 Kontakt
 Script Installation
 Php
 Php Tutorials
 Webhoster Vergleich
 Impressum

Community-Bereich
 kostenlos Registrieren
 Anmelden
 Benutzerliste

Script Datenbank
 Script Archiv
 Script Top 20
 Screenshots
 Testberichte

Suche
 

Unsere Php Scripts
 Counter Script
 Umfrage Script
 Bilder Upload Script
 Terminverwaltung
 Simple PHP Forum
 RSS Grabber

Script Mods
 phpBB Adsense Mode

Tools und Generatoren
 .htpasswd Generator
 md5 Generator
 base64 Generator
 Markdown to HTML
 Colorpicker
 Unix timestamp Tool
 TLD Liste
 Webkatalog‑Verzeichnis

Partner
 Sprüche Treff

Hosterplus.de
Bekommen Sie Speicherplatz (Webspace), Domains...
https://www.Hosterplus.de
Artfiles.de
Bietet Serviceorientierte...
https://www.Artfiles.de
 
 
 

PHP array_shift: Das erste Element aus einem Array entfernen

Sie befinden sich: Home > Php Tutorial > PHP array_shift: Das erste...

PHP array_shift: Das erste Element aus einem Array entfernen


Eintrag am:  20.03.2026
Hits / Besucher:  57
Sprache:  Deutsch
Kategorie:  Einsteiger Tutorials
Tutorial Art:  eigenes
Eingetragen von   schubertmedia schubertmedia
 
Beschreibung

Die Arbeit mit Arrays gehört zum Alltag in PHP. Häufig muss das erste Element eines Arrays entfernt und gleichzeitig zurückgegeben werden. Genau dafür stellt PHP die Funktion array_shift() bereit. In diesem Tutorial wird gezeigt, wie die Funktion arbeitet, welche Auswirkungen sie auf die Keys hat und wann bessere Alternativen existieren.

Illustration zum Tutorial: PHP array_shift: Das erste Element aus einem Array entfernen

Bevor die Funktion in Beispielen zum Einsatz kommt, werden zunächst die Syntax und das Verhalten bei numerischen sowie assoziativen Arrays erläutert.

Syntax und Rückgabewert

Bevor die Funktion in der Praxis eingesetzt wird, lohnt sich ein Blick auf die Syntax und das Verhalten des Rückgabewerts.

Die Funktion erwartet ein Array als Referenz und gibt das entfernte erste Element zurück. Ist das Array leer, liefert array_shift() den Wert null. Wichtig: Das übergebene Array wird direkt verändert, es wird keine Kopie erstellt. Alle numerischen Schlüssel werden nach dem Entfernen neu indiziert, während String-Keys erhalten bleiben.

Grundlegendes Beispiel

Ein einfaches Beispiel zeigt die Funktionsweise von array_shift() am deutlichsten.

<?php

$farben = ['Rot', 'Gruen', 'Blau', 'Gelb'];

$erstes = array_shift($farben);
echo $erstes; /* Rot */

print_r($farben);
/* Array ( [0] => Gruen [1] => Blau [2] => Gelb ) */

Das erste Element Rot wird aus dem Array entfernt und in der Variablen $erstes gespeichert. Das verbleibende Array enthält nur noch drei Elemente mit neu vergebenen numerischen Keys.

array_shift bei assoziativen Arrays

Die Funktion funktioniert auch mit assoziativen Arrays, verhält sich dabei aber leicht anders als bei numerisch indizierten Arrays.

<?php

$person = ['name' => 'Max', 'alter' => 28, 'stadt' => 'Berlin'];

$erstes = array_shift($person);
echo $erstes; /* Max */

print_r($person);
/* Array ( [alter] => 28 [stadt] => Berlin ) */

Bei assoziativen Arrays bleiben die String-Keys unverändert. Es wird lediglich das erste Schlüssel-Wert-Paar entfernt, ohne dass die restlichen Keys angepasst werden.

Numerische Keys werden neu indiziert

Ein häufiger Stolperstein ist die automatische Neu-Indizierung der numerischen Schlüssel. Nach dem Aufruf von array_shift() beginnen die numerischen Keys wieder bei 0. Wer sich auf bestimmte Index-Positionen verlässt, sollte dieses Verhalten unbedingt berücksichtigen. String-Keys sind davon nicht betroffen und behalten ihre ursprünglichen Bezeichnungen.

array_shift vs. array_pop

Während array_shift() das erste Element entfernt, arbeitet array_pop() am anderen Ende des Arrays. Beide Funktionen geben das entfernte Element zurück.

<?php

$zahlen = [10, 20, 30, 40];

$vorne = array_shift($zahlen);
echo $vorne; /* 10 - erstes Element */

$hinten = array_pop($zahlen);
echo $hinten; /* 40 - letztes Element */

Das folgende Diagramm veranschaulicht den Unterschied beider Funktionen.

flowchart LR
    A[A, B, C, D] -->|shift| B[A]
    A -->|shift| C[B, C, D]
    D[A, B, C, D] -->|pop| E[D]
    D -->|pop| F[A, B, C]

Ein typischer Anwendungsfall für array_shift() ist die Verarbeitung einer Warteschlange nach dem FIFO-Prinzip (First In, First Out).

<?php

$warteschlange = ['Auftrag A', 'Auftrag B', 'Auftrag C'];

while (!empty($warteschlange)) {
$aktuell = array_shift($warteschlange);
echo "Verarbeite: $aktuell";
}

Elemente werden in der Reihenfolge abgearbeitet, in der sie hinzugefügt wurden. Neue Einträge lassen sich mit array_push() am Ende anfügen.

array_shift vs. unset

Mit unset() kann ebenfalls ein Element an einer bestimmten Position entfernt werden. Der entscheidende Unterschied: unset() gibt keinen Rückgabewert zurück und indiziert die numerischen Keys nicht neu. Nach einem unset($array[0]) bleibt eine Lücke im Index bestehen. Bei array_shift() hingegen wird das Array automatisch neu durchnummeriert. Für das gezielte Entfernen eines Elements an einer beliebigen Position ist unset() in Kombination mit array_values() eine gängige Alternative.

Performance bei großen Arrays

Die Funktion array_shift() hat eine Zeitkomplexität von O(n), da nach dem Entfernen alle verbleibenden numerischen Keys neu berechnet werden müssen. Bei kleinen Arrays ist das kein Problem. Bei Arrays mit tausenden oder mehr Einträgen kann dieser Vorgang jedoch spürbar langsamer werden. In solchen Fällen ist array_pop() mit O(1) die deutlich schnellere Wahl, da am Ende des Arrays keine Neu-Indizierung nötig ist. Alternativ kann array_reverse() in Kombination mit array_pop() eingesetzt werden, wenn die Reihenfolge beibehalten werden muss.

Fazit

Die Funktion array_shift() ist das passende Werkzeug, um das erste Element eines Arrays zu entfernen und gleichzeitig darauf zuzugreifen. Sie eignet sich besonders für die Queue-Verarbeitung nach dem FIFO-Prinzip. Wichtig ist das Wissen um die Neu-Indizierung numerischer Keys und die O(n) Komplexität bei großen Arrays. Für das Entfernen am Ende bietet sich array_pop() an, für das Einfügen am Anfang steht array_unshift() als Gegenstück bereit.

 

Tags:

 

Bücherregal mit drei Büchern: 'PHP 4 - Grundlagen und Profiwissen' von Hanser Verlag, 'Webdesign in a Nutshell' von O'Reilly Verlag, und 'Webgestaltung' von Galileo Computing.