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


当前回答

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

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

其他回答

用array_reverse()试试这个。

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

你可以用这个:

$array = array("one" => "apple", "two" => "orange", "three" => "pear");
end($array); 
echo key($array);

另一个解决方案是创建一个函数并使用它:

function endKey($array){
end($array);
return key($array);
}

$array = array("one" => "apple", "two" => "orange", "three" => "pear");
echo endKey($array);

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

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

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

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

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

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

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

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