如何在(可能是)关联数组中获取第一个键?

14 浏览
0 Comments

如何在(可能是)关联数组中获取第一个键?

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

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

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

admin 更改状态以发布 2023年5月20日
0
0 Comments

array_keys 函数返回一个键组成的数组。取第一个元素即可。或者您可以在数组上调用 reset,然后调用 key。后一种方法可能稍微更快一些(虽然我没有测试过),但它的副作用是重置内部指针。

0
0 Comments

2019更新

PHP 7.3开始,有一个新的内置函数叫做array_key_first(),它将从给定的数组中检索第一个键而不重置内部指针。查看文档获取更多信息。


你可以使用resetkey

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)

0