array_key_first

(PHP 7 >= 7.3.0, PHP 8)

array_key_first获取指定数组的第一个键值

说明

array_key_first ( array $array ) : mixed

取得指定数组的 array 第一个键值,不影响到原数组的内部指针。

参数

array

要操作的数组。

返回值

返回 array 的第一个键值(如果不为空),否则返回 null

范例

Example #1 array_key_first() 基本用法

<?php
$array 
= ['a' => 1'b' => 2'c' => 3];

$firstKey array_key_first($array);

var_dump($firstKey);
?>

以上例程会输出:

string(1) "a"

注释

Tip

在 PHP 7.3.0 之前,有几种方式可以实现该功能。可以使用 array_keys() 函数,但是性能会比较低。也可以使用 reset()key() 函数,但这可能会影响内部数组指针。一个用旧函数实现该功能的方式如下:

<?php
if (!function_exists('array_key_first')) {
    function 
array_key_first(array $arr) {
        foreach(
$arr as $key => $unused) {
            return 
$key;
        }
        return 
NULL;
    }
}
?>

参见

  • array_key_last() - 获取一个数组的最后一个键值
  • reset() - 将数组的内部指针指向第一个单元

User Contributed Notes

nekto at nekto dot com dot ua 03-Jul-2021 07:15
A proper one-liner polyfill for version < 7.3:

<?php
function array_key_first((array) $a)
{
    return
array_keys($a)[0];
}
github.com / ahsankhatri 23-Jan-2021 12:06
One-liner polyfill (php version < 7.3.0)

<?php
function array_key_first(array $array)
{
    return
key(array_slice($array, 0, 1));
}
Vee W. 22-Jan-2021 02:10
Another way to get first array key with PHP older than 7.3.

<?php

$array
= ['one', 'two', 'three'];
$array2 = ['one' => 'Number one', 'two' => 'Number two'];

reset($array);// go to first array
echo key($array);// get its key (first array)
// expect 0.

reset($array2);
echo
key($array2);
// expect one.