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` は検索対象の配列。
・`$callback` はコールバック関数。
・配列から特定の条件に合致する最初の要素のキーを検索する場合に便利。
コメント