A proper one-liner polyfill for version < 7.3:
<?php
function array_key_first((array) $a)
{
return array_keys($a)[0];
}
(PHP 7 >= 7.3.0, PHP 8)
array_key_first — Gets the first key of an array
$array
): int|string|null
Get the first key of the given array
without affecting
the internal array pointer.
array
An array.
Returns the first key of array
if the array is not empty;
null
otherwise.
Example #1 Basic array_key_first() Usage
<?php
$array = ['a' => 1, 'b' => 2, 'c' => 3];
$firstKey = array_key_first($array);
var_dump($firstKey);
?>
Il precedente esempio visualizzerĂ :
string(1) "a"
There are several ways to provide this functionality for versions prior to PHP 7.3.0. It is possible to use array_keys(), but that may be rather inefficient. It is also possible to use reset() and key(), but that may change the internal array pointer. An efficient solution, which does not change the internal array pointer, written as polyfill:
<?php
if (!function_exists('array_key_first')) {
function array_key_first(array $arr) {
foreach($arr as $key => $unused) {
return $key;
}
return NULL;
}
}
?>
A proper one-liner polyfill for version < 7.3:
<?php
function array_key_first((array) $a)
{
return array_keys($a)[0];
}
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.
One-liner polyfill (php version < 7.3.0)
<?php
function array_key_first(array $array)
{
return key(array_slice($array, 0, 1));
}