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


当前回答

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

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

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

其他回答

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

你可以用这个:

$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_keys($myarr))

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

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

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

内联示例用法:

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

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

我只是从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));