Es gibt hierfür verschiedene Lösungsansätze. Persönlich bevorzuge ich für solch ein Problem eine standardmäßige for
-Schleife, die das Leben einfacher macht, also:
for($i=0; $i<count($cars); $i++)
{
// erstes Element
if($i==0)
{
var_dump('Erstes Auto: '.$cars[$i]);
}
// letztes Element
if($i==count($cars)-1)
{
var_dump('Letztes Auto: '.$cars[$i]);
}
}
Erste Lösung:
Du erzielst das gleiche innerhalb einer foreach
-Schleife wie folgt:
$i = 0;
$last = count($cars) - 1;
foreach($cars as $car)
{
// erstes Element
if($i==0)
{
var_dump('Erstes Auto: '.$car);
}
// letztes Element
if($i==$last)
{
var_dump('Letztes Auto: '.$car);
}
// wichtig
$i++;
}
Zweite Lösung:
Man kann mit Hilfe des $key
das erste und letzte Element wie folgt identifizieren:
reset($cars);
$first = key($cars);
$last = end($cars);
foreach($cars as $key => $car)
{
if($key === $first)
{
var_dump('Erstes Auto: '.$car);
}
else if($key === $last)
{
var_dump('Letztes Auto: '.$car);
}
}
Dritte Lösung:
Wichtig: Diese Lösung funktioniert nur einwandfrei zum Finden des letzten Elements, wenn das Array keine Boolean-Werte enthält, da next()
false
zurückgeben kann.
foreach($cars as $car)
{
if(!next($cars))
{
var_dump('Letztes Auto: '.$car);
}
}