(PHP 7 >= 7.3.0, PHP 8)
array_key_first — Получает первый ключ массива
Функция возвращает первый ключ массива array, не сдвигая
внутренний указатель массива.
arrayМассив.
Функция возвращает первый ключ массива array, если массив не пуст,
иначе возвращает значение null .
Пример #1 Пример получения первого ключа массива функцией array_key_first()
<?php
$array = ['a' => 1, 'b' => 2, 'c' => 3];
$firstKey = array_key_first($array);
var_dump($firstKey);
?>Результат выполнения приведённого примера:
string(1) "a"
До PHP 7.3.0 первый ключ массива получали следующими способами. Вызывали функцию array_keys() и считывали из массива с результатами значение с индексом 0, но создавать новый массив со всеми ключами только из-за одного значения неэффективно. Первый ключ также возможно считать функцией reset() , но она передвинет внутренний указатель массива на первый элемент, или функцией key() , но она вернёт первый ключ, только если внутренний указатель стоит на первом элементе массива. Следующий полифил возвращает первый ключ и не изменяет внутренний указатель массива:
<?php
if (!function_exists('array_key_first')) {
function array_key_first(array $arr)
{
foreach ($arr as $key => $unused) {
return $key;
}
return NULL;
}
}
?>A polyfill serves the purpose of retroactively incorporating new features from PHP releases into older PHP versions, ensuring API compatibility.
In PHP 7.3.0, the array_key_first() function was introduced, demonstrated in the following example:
<?php
$array = [
'first_key' => 'first_value',
'second_key' => 'second_value',
];
var_dump(array_key_first($array));
?>
The provided polyfill in this documentation allows the convenient use of array_key_first() with API compatibility in PHP versions preceding PHP 7.3.0, where the function was not implemented:
<?php
if (!function_exists('array_key_first')) {
function array_key_first(array $arr) {
foreach ($arr as $key => $unused) {
return $key;
}
return null;
}
}
$array = [
'first_key' => 'first_value',
'second_key' => 'second_value',
];
var_dump(array_key_first($array));
?>