PHPのarray_find_key関数の使い方!要素を探してキーを返す

PHPのarray_find_key関数について書いています。
PHP8.4以降で導入された関数です。

この関数は、コールバック関数を使用して配列の要素を検索し、条件を満たす最初の要素のキーを返します。
array_find 関数が「条件を満たす最初の要素の値を返す」のに対し、array_find_key 関数はキーを返します。

この関数を使うと、配列から特定の条件に合致する最初の要素のキーを効率的に取得できます。

array_find_key関数の基本的な使い方

array_find_key関数は、コールバック関数を使用して配列の要素を検索し、条件を満たす最初の要素のキーを返します。
基本的な構文は以下のとおりです。

array_find_key(array $array, callable $callback): mixed
  • $array: 検索対象の配列。
    • 任意の型の値を要素とする配列を指定します。
  • $callback: コールバック関数。
    • 各要素の値とキーを引数として受け取り、検索条件に応じて true または false を返す関数を指定します。

array_find_key関数の戻り値

array_find_key関数の戻り値は、条件を満たす最初の要素のキーです。
条件を満たす要素が見つからなかった場合は null を返します。

コールバック関数を使用して配列のキーを検索する

実際にarray_find_key関数で、配列の値を確認して、配列のキーを取得してみます。

<?php
$array = ['apple' => 100, 'banana' => 200, 'orange' => 300];

$result = array_find_key($array, function ($value) {
    return $value > 150;
});

print_r($result); // 結果:banana
?>

最初に$array配列を作成しています。

そのあとにarray_find_key関数を使っています。
第1引数に検索したい配列を渡して、第2引数のコールバック関数で、$array配列から値が150より大きい最初の要素のキーを検索しています。

$valueには配列の値が入ってきて、trueになった時のキーが返ってきます。
今回の例だと、要素の値が150より大きい場合にtrueを返します。

結果を確認すると、値が150以上になっているキー(banana)が返ってきていることが確認できました。

キーと値の両方を使用して配列のキーを検索する

キーと値をコールバック関数に渡すことで、両方を判断に使うことができます。

<?php
$array = ['apple' => 'red', 'banana' => 'yellow', 'orange' => 'orange'];

$result = array_find_key($array, function ($value, $key) {
    return $key === 'orange' && $value === 'orange';
});

print_r($result); // 結果:orange
?>

array_find_key関数を使っていて、コールバック関数に$value$keyを渡しています。
$valueに配列の値が入ってきて、$keyに配列のキーが入ってきます。

今回の例だと、$array配列からキーがorangeで値がorangeの要素のキーを検索しています。
結果を出力すると、条件に合致したキーのorangeが返ってきたことが確認できます。

array_find_key関数を使うメリット

array_find_key関数を使う主なメリットは以下のとおりです。

・配列から特定の条件に合致する最初の要素のキーを簡単に検索できます。
・ループ処理を記述する必要がなく、コードが簡潔になります。
・コードの意図が明確になり、可読性が向上します。

PHPのarray_find_key関数の使い方まとめ

今回はPHPのarray_find_key関数の使い方について解説しました。
この記事の内容をまとめます。

・`array_find_key(array $array, callable $callback): mixed` で配列の要素を検索し、条件を満たす最初の要素のキーを返す。
・`$array` は検索対象の配列。
・`$callback` はコールバック関数。
・配列から特定の条件に合致する最初の要素のキーを検索する場合に便利。
PHP

コメント