如何获得数组的最后一个键?


当前回答

只需使用:echo $array[count($array) - 1];

其他回答

一个解决方案是使用end和key的组合(引用):

End()将数组的内部指针前进到最后一个元素,并返回它的值。 Key()返回当前数组位置的索引元素。

因此,像这样的一部分代码应该可以做到:

$array = array(
    'first' => 123,
    'second' => 456,
    'last' => 789, 
);

end($array);         // move the internal pointer to the end of the array
$key = key($array);  // fetches the key of the element pointed to by the internal pointer

var_dump($key);

将输出:

string 'last' (length=4)

也就是数组最后一个元素的键值。

完成此操作后,数组的内部指针将位于数组的末尾。正如注释中所指出的,您可能希望在数组上运行reset()以将指针带回数组的开头。

只需使用:echo $array[count($array) - 1];

在PHP >= 7.3中,array_key_last()是获取任何数组的最后一个键的最佳方法。使用end(), key()和reset()的组合来获取数组的最后一个键是过分的。

$array = array("one" => bird, "two" => "fish", 3 => "elephant");
$key = array_key_last($array);
var_dump($key) //output 3

比较一下

end($array)
$key = key($array)
var_dump($key) //output 3
reset($array)

如果使用end()和key()组合,则必须重置数组,使指针位于开头。

尝试使用array_pop和array_keys函数,如下所示:

<?php

$array = array(
    'one' => 1,
    'two' => 2,
    'three' => 3
);

echo array_pop(array_keys($array)); // prints three

?>

很奇怪,但是这个话题为什么没有这个答案:

$lastKey = array_keys($array)[count($array)-1];