array_key_first() 是 PHP 8.0 新增函数,用于 O(1) 时间获取数组首个键,空数组返回 null,不修改指针,安全高效,适用于判空、取配置首键等场景。

array_key_first() 是 PHP 8.0 新增的内置函数,用于快速获取数组的第一个键(key),无需遍历或重置指针,性能好、写法简洁。
作用和适用场景
常用于判断关联数组是否为空、获取配置项首键、做条件分支依据等。相比 key($arr) 或 array_keys($arr)[0],它更安全高效:
- 不修改原数组内部指针位置
- 对空数组返回
null,不会触发警告 - 时间复杂度为 O(1),比
array_keys()的 O(n) 更快
基本用法示例
语法很简单:array_key_first(array $array): mixed
例如:
立即学习“PHP免费学习笔记(深入)”;
$arr = ['name' => 'Alice', 'age' => 30, 'city' => 'Beijing']; echo array_key_first($arr); // 输出:name <p>$empty = []; var_dump(array_key_first($empty)); // 输出:NULL
常见搭配用法
通常和空值判断、条件逻辑一起使用:
- 检查数组非空并取首键:
if (($firstKey = array_key_first($data)) !== null) { /* 处理 */ } - 配合
array_key_last()做范围判断(如只处理单元素数组) - 在 foreach 前快速预判结构:
if (array_key_first($config) === 'host') { ... }
注意事项
该函数仅支持 PHP 8.0 及以上版本;不支持传入字符串、对象等非数组类型,会报 TypeError;索引数组也正常工作,返回最小数字键(如 [10 => 'a', 0 => 'b'] 返回 10,因 PHP 数组保持插入顺序,首个插入的键即为“第一个”)。



















