一尘不染

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

php

确定可能关联数组中的第一个键的最佳方法是什么?我首先想到的是,它只存储数组,然后立即破坏它,如下所示:

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

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


阅读 297

收藏
2020-05-26

共1个答案

一尘不染

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)
2020-05-26