2011-06-06 20 views
13

Hay, tengo una matriz que contiene un conjunto de matrices, he aquí un ejemplo.Obtener la clave del último elemento en una matriz

array(
    [0]=>array('name'=>'bob'), 
    [2]=>array('name'=>'tom'), 
    [3]=array('name'=>'mark') 
) 

¿Cómo puedo obtener el último elemento de la matriz y devolver su clave.

Así en el ejemplo anterior sería volver 3.

+0

¿qué pasa con 'count ($ array);' ^^ – dynamic

+0

@ yes123 esto no funcionará si el las claves son numéricas y están en el orden exacto, sin ninguna falta. – Dunhamzzz

+2

posible duplicado de [¿Cómo obtener la última clave en una matriz?] (Http://stackoverflow.com/questions/2348205/how-to-get-last-key-in-an-array) – Gordon

Respuesta

29
end($array); 
echo key($array) 

Esto debe devolver la llave del último elemento.

13

Trate $lastKey = end(array_keys($array));

+0

@ yes123 ¿Y? Todavía funciona, y todo está en una línea, lo cual es bueno. – Dunhamzzz

+12

No quiero ser excesivamente pedante, pero esto dará un mensaje de 'Normas estrictas: solo las variables deben pasarse por referencia ...'. – Yoshi

4
<?php 
$a = array(
    0=>array('name'=>'bob'), 
    2=>array('name'=>'tom'), 
    3=>array('name'=>'mark') 
); 


$b = array_keys($a); 
echo end($b); 

?> 

algo como esto

1

Otra opción:

$last_key = key(array_slice($array, -1, true)); 
+0

Esto no conservará las claves, que probablemente sea un requisito aquí. – nate

+0

@nate: Ooops, tienes razón, simplemente lo solucionaste. –

0

Puede crear la función y utilizarla:

function endKey($array){ 
end($array); 
return key($array); 
} 

$array = array("one" => "apple", "two" => "orange", "three" => "pear"); 
echo endKey($array); 
Cuestiones relacionadas