Bevor ich eine wesentlich schnellere Variante mit Laravel zeige, zunächst nochmal ein Rückblick. In einem älteren Beitrag, aus dem Jahr 2016 (PHP Stories: Letztes Array Element), habe ich geschrieben, wie man das letzte Element eines Arrays ermittelt kann. Durch die in PHP vorhandene Funktion end() rückt man den internen Zeiger vom Array bis zum letzten Element vor, und gibt dann dessen Wert zurück.
Eine „Einzeiler“ Varianter die ein Benutzer kommentiert hatte sieht in etwa wie folgt aus:
<?php $array = ['Toby', 'Lars', 'Yutta', 'Nils']; echo "Der letzte ist " . $array[array_keys($array)[sizeof($array)-1]]; // Ausgabe: Der letzte ist Nils
An dieser Stelle lohnt es sich nochmal einen Blick auf das PHP-Framework Laravel zu werfen. Hier gibt es bereits Funktionen die solche Probleme komplett auflösen. In Laravel könnte ein Code Beispiel wie folgt aussehen:
<?php $collection = collect(['Toby', 'Lars', 'Yutta', 'Nils']); echo $collection->last() . " ist der letzte <br>"; echo $collection->first() . " ist der letzte <br>"; // Ausgabe: Nils ist der letzte <br>Toby ist der letzte <br>
Mit dieser Variante wird anstatt einem Array ein „Collection“ Objekt erstellt. Diese Klasse enthält diverse Interfaces die dafür sorgen, dass das Objekt wie ein Array verwendet werden kann. Neben Methoden wie first, last, count oder filter gibt es viele weitere Methoden um mit einer „Collection“ von Elementen umzugehen.
Für jeden der noch nichts mit Laravel gemacht hat, sollte sich das Framework unbedingt einmal näher anschauen.
das stimmt
Der Klassiker 😉
Mittlerweile hat jedes Framework seine ganz eigenen Helper dafür