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


当前回答

$array = array(
    'something' => array(1,2,3),
    'somethingelse' => array(1,2,3,4)
);

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

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

其他回答

尝试保持与旧版本PHP的兼容性:

$array_keys    = array_keys( $array );
$last_item_key = array_pop( $array_keys );

自PHP 7.3(2018)以来,(终于)有了这个函数: http://php.net/manual/en/function.array-key-last.php

$array = ['apple'=>10,'grape'=>15,'orange'=>20];
echo array_key_last ( $array )

将输出

orange

我更喜欢

end(array_keys($myarr))

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

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

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

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

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