如何在(可能是)关联数组中获取第一个键?
如何在(可能是)关联数组中获取第一个键?
什么是确定可能关联数组中第一个键的最佳方法?我的第一个想法是foreach数组然后立即打破它,像这样:
foreach ($an_array as $key => $val) break;
因此,$key包含第一个键,但这似乎效率低下。有更好的解决方案吗?
admin 更改状态以发布 2023年5月20日
2019更新
从PHP 7.3开始,有一个新的内置函数叫做array_key_first()
,它将从给定的数组中检索第一个键而不重置内部指针。查看文档获取更多信息。
reset($array); $first_key = key($array);
实际上和你最初的代码基本相同,但是开销少一些,并且更明显的发生了什么。
只需记得调用reset
,否则可能会获取数组中的任何一个键。你还可以使用end
而不是reset
来获取最后一个键。
如果你想要获取第一个值的键,reset
实际上返回它:
$first_value = reset($array);
但是还有一个特殊情况需要注意(因此先检查数组的长度):
$arr1 = array(false); $arr2 = array(); var_dump(reset($arr1) === reset($arr2)); // bool(true)