PHPKonf 2025 Baku

array_find

(PHP 8 >= 8.4.0)

array_findReturns the first element satisfying a callback function

Description

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

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

Parameters

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 value is returned from array_find() and the callback will not be called for further elements.

Return Values

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

Examples

Example #1 array_find() 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($array, function (string $value) {
return
strlen($value) > 4;
}));

// Find the first animal whose name begins with f.
var_dump(array_find($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($array, function (string $value, $key) {
return
$value[0] === $key;
}));

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

The above example will output:

string(5) "goose"
NULL
string(3) "cow"
string(3) "dog"

See Also

  • array_find_key() - Returns the key of 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() - Filters elements of an array using a callback function
  • array_reduce() - Iteratively reduce the array to a single value using a callback function

Found A Problem?

Learn How To Improve This PageSubmit a Pull RequestReport a Bug
+add a note

User Contributed Notes 1 note

up
11
mail at nititech dot de
4 months ago
A simple fallback For older PHP versions, that do not have array_find:

<?php

/**
* Porting of PHP 8.4 function
*
* @template TValue of mixed
* @template TKey of array-key
*
* @param array<TKey, TValue> $array
* @param callable(TValue $value, TKey $key): bool $callback
* @return ?TValue
*
* @see https://www.php.net/manual/en/function.array-find.php
*/
function array_find(array $array, callable $callback): mixed
{
foreach (
$array as $key => $value) {
if (
$callback($value, $key)) {
return
$value;
}
}

return
null;
}
?>
+add a note

AltStyle によって変換されたページ (->オリジナル) /