如何获得数组的最后一个键?
当前回答
尝试使用array_pop和array_keys函数,如下所示:
<?php
$array = array(
'one' => 1,
'two' => 2,
'three' => 3
);
echo array_pop(array_keys($array)); // prints three
?>
其他回答
自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 = array(
'first' => 123,
'second' => 456,
'last' => 789,
);
$keys = array_keys($array);
$last = end($keys);
尽管end()似乎是最简单的,但它并不是最快的。更快、更强大的替代方法是array_slice():
$lastKey = key(array_slice($array, -1, 1, true));
正如测试所示,在一个包含500000个元素的数组上,它几乎快了7倍!
我更喜欢
end(array_keys($myarr))
最好的解决方案,也可以使用内联:
end($arr) && false ?: key($arr)
这种解决方案只是表达式/语句,提供的性能很好,但不是最好的性能。
内联示例用法:
$obj->setValue(
end($arr) && false ?: key($arr) // last $arr key
);
更新:在PHP 7.3+:使用(当然)新添加的array_key_last()方法。