2010-02-14 5 views
9

¿Cómo puedo verificar si esta clave es el último elemento de una matriz?Verificando si una tecla es el último elemento en una matriz?

$array = array("a","b","c"); 

El valor de "c" tendría la llave 2. ¿Hay algún código como este is_end(2) que devuelve verdadero o falso dependiendo de si es la última clave de la matriz? ¿Hay alguna clase de declaración while() que pueda usar?

+0

Posibles duplicados: http://stackoverflow.com/questions/1892848/return-last-numeric-key-not-value-of-an-array, http://stackoverflow.com/questions/ 216030/qué-es-el-mejor-método-de-obtener-la-clave-de-la-última-agregada-matriz-elemento-en-php –

Respuesta

20

Puede usar end() y key() para obtener la clave al final de la matriz.

end($array); 
$lastKey = key($array); 
+0

¡perfecto! Gracias: D – tarnfeld

+0

quizás quiera decir algo como: end ($ array); $ lastKey = key ($ array); pero no puedes hacerlo todo en solo 1 oración ..... – useless

+0

@unless Sí. Fijo. – Yacoby

5

Puede count los valores de la matriz:

$last_index = count($array) - 1; 

Pero esto no va a trabajar con matrices asociativas.

+0

este es el método que normalmente uso? nunca estoy seguro de si es el mejor, pero la respuesta aceptada parece causar problemas/confusión si se usa con un bucle foreach, por ejemplo. Alguien tiene alguna idea? – andyface

+1

'foreach' y' end' modifican el puntero de la matriz interna (al elemento "actual"), por lo que usar ambas construcciones al mismo tiempo arruina las cosas. –

+0

En aras de la exhaustividad: count() devuelve el número de elementos que no son válidos. Si tiene claves de cadena u otros pedidos de clave que no sean 0,1,2,3, ... $ array [count ($ array) -1] tampoco funcionará. –

1
$is_2_lastone = array_pop(array_keys($array)) === 2; 
0

Asumiendo que no utiliza un associative array, sólo podía comprobar la longitud de la matriz, utilizando count. Devolverá 1+last index in array

+0

En aras de la exhaustividad: count() devuelve el número de elementos que no son válidos. Si tiene claves de cadena u otras órdenes de clave que 0,1,2,3, ... $ array [count ($ array) -1] no funcionará. –

Cuestiones relacionadas