确定可能关联数组中的第一个键的最佳方法是什么?我首先想到的是,它只存储数组,然后立即破坏它,如下所示:
foreach ($an_array as $key => $val) break;
因此,让$ key包含第一个键,但这似乎效率很低。有谁有更好的解决方案?
从 PHP 7.3 开始,有一个名为的新内置函数array_key_first(),它将在不重置内部指针的情况下从给定数组中检索第一个键。查看文档以获取更多信息。
array_key_first()
您可以使用reset和key:
reset
key
reset($array); $first_key = key($array);
它本质上与您的初始代码相同,但是开销更少,而且发生的情况更明显。
请记住要调用reset,否则您可能会得到数组中的任何键。您也可以使用end而不是reset获取最后一个密钥。
end
如果您希望键获取第一个值,则reset实际上返回它:
$first_value = reset($array);
不过,有一种特殊情况需要提防(因此请先检查数组的长度):
$arr1 = array(false); $arr2 = array(); var_dump(reset($arr1) === reset($arr2)); // bool(true)