2010-05-17 5 views
11

frecuencia estoy usando el siguiente para conseguir el segundo al último valor en una matriz:consigo segundo al último valor en la gama

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

Me estoy perdiendo una función PHP para hacerlo de una sola vez o es que lo mejor que tengo?

Respuesta

38
end($array); 
$z = prev($array); 

Esto es más eficiente que su solución porque depende del puntero interno de la matriz. Su solución hace una copia innecesaria de la matriz.

+0

Me gusta esto, mejor que mi respuesta. :) –

13

Para indexado numéricamente matrices consecutivos, tratar $z = $array[count($array)-2];

Editar: Para una opción más genérica, mira la respuesta de Artefecto.

+0

necesito Me ganaste a él! =) – pr1001

+0

Acabo de tener suerte ... :) –

+4

Solo funciona si la matriz está indexada numéricamente, comienza con 0 y no hay espacios vacíos. – Artefacto

1

O aquí, debería funcionar.

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

estoy usando esto, si él :)

Cuestiones relacionadas