获取(可能)关联数组中的第一个键?

2022-08-30 05:46:42

确定可能关联的数组中的第一个键的最佳方法是什么?我的第一个想法是先放弃数组,然后立即打破它,就像这样:

foreach ($an_array as $key => $val) break;

因此,$key包含第一个键,但这似乎效率低下。有没有人有更好的解决方案?


答案 1

2019年更新

PHP 7.3 开始,有一个新的内置函数,它将从给定数组中检索第一个键,而无需重置内部指针。有关详细信息,请查看文档array_key_first()


您可以使用重置

reset($array);
$first_key = key($array);

它本质上与初始代码相同,但开销略少,并且更明显。

只需记住调用 ,否则您可能会获得数组中的任何键。您还可以使用 end 而不是 来获取最后一个密钥。resetreset

如果希望键获取第一个值,则实际返回它:reset

$first_value = reset($array);

不过,有一种特殊情况需要注意(因此请先检查数组的长度):

$arr1 = array(false);
$arr2 = array();
var_dump(reset($arr1) === reset($arr2)); // bool(true)

答案 2

array_keys返回一个键数组。获取第一个条目。或者,您可以调用数组,然后调用 。后一种方法可能稍微快一些(我没有测试它),但它有重置内部指针的副作用。resetkey