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


当前回答

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

<?php

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

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

?>

其他回答

不知道这是否会更快,但似乎更容易这样做,你避免错误不传递函数end()…

它只需要一个变量……多写一行代码,然后在需要时取消设置,这不是什么大问题。

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

$keys = array_keys($array);
$last = end($keys);

我更喜欢

end(array_keys($myarr))

用array_reverse()试试这个。

 $arr = array(
     'first' => 01,
     'second' => 10,
     'third' => 20, 
 );  
 $key = key(array_reverse($arr));
 var_dump($key);

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

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

最好的解决方案,也可以使用内联:

end($arr) && false ?: key($arr)

这种解决方案只是表达式/语句,提供的性能很好,但不是最好的性能。

内联示例用法:

$obj->setValue(
    end($arr) && false ?: key($arr) // last $arr key
);

更新:在PHP 7.3+:使用(当然)新添加的array_key_last()方法。