Start · Sprachen · PHP · Referenz · array_last

array_last

Funktion

Liefert den letzten Wert eines Arrays, ohne den internen Array-Zeiger zu verändern.

Kategorie: array

Signatur

array_last(array $array): mixed

Beschreibung

array_last ist keine native PHP-Funktion der Standardbibliothek. Es handelt sich um eine häufig selbst implementierte Hilfsfunktion oder eine Funktion aus Frameworks wie Laravel (Arr::last()) bzw. anderen Utility-Bibliotheken, die das Abrufen des letzten Array-Elements vereinfacht.

In nativem PHP kann dasselbe Ergebnis über verschiedene Wege erreicht werden: end($array) gibt den letzten Wert zurück, setzt aber den internen Array-Zeiger. Alternativ eignen sich array_slice($array, -1)[0] oder $array[array_key_last($array)] (ab PHP 7.3), da sie den Zeiger nicht verändern und auch bei assoziativen Arrays korrekt funktionieren.

Eine typische eigene Implementierung von array_last prüft, ob das Array leer ist, und gibt in diesem Fall null oder einen definierten Standardwert zurück, andernfalls das letzte Element. Das ist besonders nützlich, wenn Code-Lesbarkeit und Ausdrucksstärke wichtiger sind als der direkte Einsatz von end().

  • Für leere Arrays sollte immer ein Fallback-Wert definiert werden.
  • Bei assoziativen Arrays bleibt der Schlüssel des letzten Elements unberücksichtigt; es wird nur der Wert geliefert.

Parameter

Name Typ Default Beschreibung
$array Pflicht array Das Eingabe-Array, aus dem der letzte Wert ermittelt werden soll. Kann numerisch oder assoziativ sein.

Rückgabewert

Typ
mixed
Beschreibung
Gibt den letzten Wert des Arrays zurück. Bei einem leeren Array wird je nach Implementierung null oder ein definierter Standardwert zurückgegeben.

Beispiele

Eigene array_last-Implementierung und Verwendung

<?php
function array_last(array $array, mixed $default = null): mixed
{
    if (empty($array)) {
        return $default;
    }
    return $array[array_key_last($array)];
}

$zahlen = [10, 20, 30, 40, 50];
echo array_last($zahlen); // 50

$assoc = ['a' => 'Apfel', 'b' => 'Birne', 'c' => 'Kirsche'];
echo array_last($assoc); // Kirsche

$leer = [];
echo array_last($leer, 'kein Wert'); // kein Wert
50 Kirsche kein Wert

Vergleich mit nativen PHP-Alternativen

<?php
$tiere = ['Hund', 'Katze', 'Vogel'];

// Mit end() — verändert den internen Zeiger
$letztes1 = end($tiere);
echo $letztes1 . PHP_EOL; // Vogel

// Mit array_key_last() — ab PHP 7.3, zeigerunabhängig
$letztes2 = $tiere[array_key_last($tiere)];
echo $letztes2 . PHP_EOL; // Vogel

// Mit array_slice() — zeigerunabhängig
$letztes3 = array_slice($tiere, -1)[0];
echo $letztes3 . PHP_EOL; // Vogel
Vogel Vogel Vogel

// Wichtig · Fallstricke

Achtung: array_last existiert nicht als offizielle PHP-Funktion. Wer sie in einem Projekt verwendet, muss sie entweder selbst definieren oder auf eine externe Bibliothek zurückgreifen. Das direkte Aufrufen ohne vorherige Definition führt zu einem fatalen Fehler (Call to undefined function).

Die native Alternative end() verändert den internen Array-Zeiger, was bei anschließendem Einsatz von foreach oder Zeiger-abhängigen Funktionen zu unerwartetem Verhalten führen kann. Bevorzuge daher $array[array_key_last($array)] (PHP >= 7.3) für zuverlässigen, nebeneffektfreien Zugriff.