2009-12-18 14 views

Respuesta

28
$myArray = array(5, 4, 3, 2, 1); 

echo end($myArray); 

impresiones "1"

+1

y para obtener la clave del último elemento ... (para actualizarlo) 'end ($ myArray); $ key = key ($ myArray); ' – ZJR

3

array_pop()

Se elimina el elemento desde el extremo de la matriz. Si necesita mantener la matriz intacta, puede usar esto y luego agregar el valor al final de la matriz. $array[] = $popped_val

+0

+1 por ser más rápido: D –

1

yo diría array_pop En la documentación: array_pop

array_pop - Extrae el último elemento final de la matriz

2

intente esto:

$arrayname[count(arrayname)-1] 
+3

Esto está mal, solo funciona con una matriz numérica ordenada, es decir, no funcionará con la matriz combinada o asociativa. – Niteriter

0

Para una matriz asociativa:

$a= array('hi'=> 'there', 'ok'=> 'then'); 
list($k, $v) = array(end(array_keys($a)), end($a)); 
var_dump($k); 
var_dump($v); 

Editar: también deben trabajar para matrices índice numérico

+1

'$ v = fin ($ a); $ k = key ($ a); '(el orden IS es relevante) me parece más rápido. – ZJR

1

Muchos de los grandes respuestas. Que no hacer una función de si está haciendo esto más de una vez:

function array_top(&$array) { 
    $top = end($array); 
    reset($array); // Optional 
    return $top; 
} 

Alternativamente, dependiendo de su temperamento: (. $array[] = ... se prefiere array_push(), cf. the docs)

function array_top(&$array) { 
    $top = array_pop($array); 
    $array[] = $top; // Push top item back on top 
    return $top; 
} 

Cuestiones relacionadas