2010-05-17 16 views
11

ich häufig die folgenden bekommen die vorletzte Wert in einem Array mit:Erhalten vorletzter Wert im Array

$z=array_pop(array_slice($array,-2,1)); 

Bin ich fehle eine PHP-Funktion in einem Rutsch zu tun, oder ist die das Beste was ich habe?

Antwort

38

Dies ist effizienter als Ihre Lösung, da es auf den internen Zeiger des Arrays angewiesen ist. Ihre Lösung erstellt eine unverschlüsselte Kopie des Arrays.

+0

Ich mag das, besser als meine Antwort. :) –

13

Für numerisch indiziert, konsekutives Arrays, versuchen $z = $array[count($array)-2];

Edit: Für eine allgemeinere Option, schauen Artefecto Antwort.

+0

Sie schlugen mich darauf! =) – pr1001

+0

Ich hatte gerade Glück ... :) –

+4

Funktioniert nur, wenn das Array numerisch indiziert ist, es beginnt mit 0 und es gibt keine Lücken. – Artefacto

1

Oder hier, sollte funktionieren.

$reverse = array_reverse($array); 
$z = $reverse[1]; 

Ich verwende dieses, wenn ich es brauchen :)