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


当前回答

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

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

其他回答

我只是从Xander那里获得了帮助函数,并使用之前的答案改进了它:

function last($array){
  $keys = array_keys($array);
  return end($keys);
}


$arr = array("one" => "apple", "two" => "orange", "three" => "pear");    
echo last($arr);
echo $arr(last($arr));
$array = array(
    'something' => array(1,2,3),
    'somethingelse' => array(1,2,3,4)
);

$last_value = end($array);
$last_key = key($array); // 'somethingelse'

这是因为PHP在内部移动$array的数组指针

$arr = array('key1'=>'value1','key2'=>'value2','key3'=>'value3');
list($last_key) = each(array_reverse($arr));
print $last_key;
// key3

我更喜欢

end(array_keys($myarr))

尽管end()似乎是最简单的,但它并不是最快的。更快、更强大的替代方法是array_slice():

$lastKey = key(array_slice($array, -1, 1, true));

正如测试所示,在一个包含500000个元素的数组上,它几乎快了7倍!