Signatur
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
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
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
// 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.