PHP 8.4.0 RC4 available for testing

array_find_key

(PHP 8 >= 8.4.0)

array_find_keyReturns the key of the first element satisfying a callback function

説明

array_find_key(array $array, callable $callback): mixed

array_find_key() returns the key of the first element of an array for which the given callback returns true. If no matching element is found the function returns null.

パラメータ

array
The array that should be searched.
callback

The callback function to call to check each element, which must be

callback(mixed $value, mixed $key): bool
If this function returns true, the key is returned from array_find_key() and the callback will not be called for further elements.

戻り値

The function returns the key of the first element for which the callback returns true. If no matching element is found the function returns null.

例1 array_find_key() example

<?php
$array
= [
'a' => 'dog',
'b' => 'cat',
'c' => 'cow',
'd' => 'duck',
'e' => 'goose',
'f' => 'elephant'
];

// Find the first animal with a name longer than 4 characters.
var_dump(array_find_key($array, function (string $value) {
return
strlen($value) > 4;
}));

// Find the first animal whose name begins with f.
var_dump(array_find_key($array, function (string $value) {
return
str_starts_with($value, 'f');
}));

// Find the first animal where the array key is the first symbol of the animal.
var_dump(array_find_key($array, function (string $value, $key) {
return
$value[0] === $key;
}));

// Find the first animal where the array key matching a RegEx.
var_dump(array_find_key($array, function ($value, $key) {
return
preg_match('/^([a-f])$/', $key);
}));
?>

上の例の出力は以下となります。

string(1) "e"
NULL
string(1) "c"
string(1) "a"

参考

  • array_find() - Returns the first element satisfying a callback function
  • array_all() - Checks if all array elements satisfy a callback function
  • array_any() - Checks if at least one array element satisfies a callback function
  • array_filter() - コールバック関数を使用して、配列の要素をフィルタリングする
  • array_reduce() - コールバック関数を繰り返し配列に適用し、配列をひとつの値にまとめる
add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top