PHPのarray_key_first
関数について書いています。
この関数を使うと、配列の一番最初のキーを取得することができます。
連想配列や数値添字の配列など、最初の要素のキーを知りたいときに使うことができます。
array_key_first
関数はPHP7.3から導入されています。
array_key_first関数とは?
array_key_first
関数は、指定した配列の 最初のキー を取得するための関数です。
最初のキーの値だけを返してくれます。
基本的な構文
mixed array_key_first ( array $array )
引数
$array
: 最初のキーを取得したい配列を指定します。
返り値
- 配列に要素がある場合: 配列の最初のキーを返します。キーは文字列または整数の可能性があります。
- 配列が空の場合:
null
を返します。
注意点: この関数はPHP 7.3.0以降で利用可能です。それより前のバージョンでは使用できません。
array_key_first関数の使い方
実際にコードを見ていきましょう。
例1:連想配列の場合
<?php
// 果物の価格を格納した連想配列を定義します。
$prices = [
'apple' => 150,
'orange' => 100,
'grape' => 300
];
// array_key_first関数で、$prices配列の最初のキーを取得します。
$firstKey = array_key_first($prices);
// 取得したキーを出力します。
echo "最初のキーは: " . $firstKey . "\n"; // apple
// 比較のために、配列全体も表示してみます。
print_r($prices);
?>
実行結果
最初のキーは: apple
Array
(
[apple] => 150
[orange] => 100
[grape] => 300
)
このコードでは、まず$prices
という連想配列を定義しています。
次に、array_key_first
関数に$prices
配列を渡して、最初のキーを取得し、結果を変数$first_key
に代入しています。
echo
で$first_key
の内容を出力すると、配列の最初のキーであるapple
が表示されます。
最後にprint_r
で配列の内容を表示していますが、array_key_first
関数を使っても配列の内容や順番が変わっていないことが確認できます。
例2:キーが数値の配列の場合
array_key_first
関数は、キーが数値の場合でも問題なく動作します。
<?php
// ユーザー名のリストを格納した数値添字の配列を定義します。
// この場合、キーは 0 から始まる整数です。
$users = [
'Alice', // キーは 0
'Bob', // キーは 1
'Charlie' // キーは 2
];
// array_key_first関数で、$users配列の最初のキーを取得します。
$firstKey = array_key_first($users);
// 取得したキーを出力します。
echo "最初のキーは: " . $firstKey . "\n"; // 0
var_dump($firstKey); // 型も確認 (int)
?>
実行結果
最初のキーは: 0
int(0)
数値インデックスの配列$users
を定義しています。
配列の最初の要素 'Alice'
のキーは0
です。
array_key_first
関数を使って最初のキーを取得すると、0
が返ってきます。
var_dump
で確認すると、型が整数 (int) であることも分かりました。
例3:空の配列の場合
空の配列をarray_key_first
関数に渡すと、null
が返ってきます。
<?php
// 空の配列を定義します。
$emptyArray = [];
// array_key_first関数で、空の配列の最初のキーを取得しようとします。
$firstKey = array_key_first($emptyArray);
// 取得した結果を出力します。
echo "空の配列の場合: ";
var_dump($firstKey); // NULL
?>
実行結果
空の配列の場合: NULL
空の配列$empty_array
をarray_key_first
関数に渡すと、取得できるキーが存在しないため、返り値はnull
になりました。
reset関数・key関数との違いは?
PHP 7.3より前のバージョンでは、配列の最初のキーを取得するために reset
関数と key
関数を組み合わせて使う方法が一般的でした。
<?php
$prices = [
'apple' => 150,
'orange' => 100,
'grape' => 300
];
// reset関数で内部ポインタを先頭に移動させます。
reset($prices);
// key関数で現在のポインタ位置(先頭)のキーを取得します。
$firstKeyOld = key($prices);
echo "reset+keyでの最初のキー: " . $firstKeyOld . "\n"; // apple
?>
この方法でも最初のキーを取得できますが、reset
関数は 配列の内部ポインタを先頭に移動させてしまう という副作用があります。
一方、array_key_first
関数は配列の内部ポインタを 変更しません。
そのため、他の処理に影響を与えることなく、安全に最初のキーを取得できます。
まとめ
PHP7.3から導入された array_key_first
関数は、配列の最初のキーをシンプルかつ安全に取得できる便利な関数です。
・空の配列に対しては `null` を返します。
・配列の内部ポインタを変更しないため、副作用の心配がありません。
配列の最初のキーだけを知りたい、という場面で使っていきましょう。
コメント