One-liner polyfill (php version < 7.3.0)
<?php
function array_key_first(array $array)
{
return key(array_slice($array, 0, 1));
}
(PHP 7 >= 7.3.0, PHP 8)
array_key_first — 配列の最初のキーを得る
$array
): int|string|null
与えられた 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() を使うことも可能でしたが、 かなり非効率になる可能性があります。 reset() と key() を使うこともできますが、 配列の内部ポインタを変更する可能性があります。 この関数は、効率が良く、かつ内部ポインタを変更しないポリフィルとして書かれました。
<?php
if (!function_exists('array_key_first')) {
function array_key_first(array $arr) {
foreach($arr as $key => $unused) {
return $key;
}
return NULL;
}
}
?>
One-liner polyfill (php version < 7.3.0)
<?php
function array_key_first(array $array)
{
return key(array_slice($array, 0, 1));
}
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.