CakeFest 2025 Madrid: The Official CakePHP Conference

array_find

(PHP 8 >= 8.4.0)

array_findВозвращает первый элемент, который удовлетворяет callback-функции

Описание

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

Функция array_find() возвращает значение первого элемента массива (array), для которого callback-функция вернула true. Функция вернёт null, если не найдёт ни одного элемента, который удовлетворяет условиям поиска.

Список параметров

array
Массив (array), в котором требуется найти элемент.
callback

Callback-функция, которую функция вызовет для проверки элементов входного массива, со следующей сигнатурой:

callback(mixed $value, mixed $key): bool
Функция array_find() вернёт значение и не станет вызывать callback-функцию для других элементов, если функция обратного вызова вернёт true.

Возвращаемые значения

Функция возвращает значение первого элемента, для которого callback-функция вернула true. Функция вернёт null, если не найдёт элемент, который удовлетворяет условиям поиска.

Примеры

Пример #1 Пример поиска функцией array_find() первого значения, которое удовлетворяет callback-функции

<?php

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

// Найдём название первого животного, которое длиннее 4 символов
var_dump(array_find($array, function (string $value) {
return
strlen($value) > 4;
}));

// Найдём название первого животного, которое начинается с буквы f
var_dump(array_find($array, function (string $value) {
return
str_starts_with($value, 'f');
}));

// Найдём название первого животного, первая буква которого совпадает с ключом
var_dump(array_find($array, function (string $value, $key) {
return
$value[0] === $key;
}));

// Найдём название первого животного, ключ которого соответствует регулярному выражению
var_dump(array_find($array, function ($value, $key) {
return
preg_match('/^([a-f])$/', $key);
}));

?>

Результат выполнения приведённого примера:

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

Смотрите также

  • array_find_key() - Возвращает ключ первого элемента, который удовлетворяет callback-функции
  • array_all() - Проверяет, каждый ли элемент массива array удовлетворяет callback-функции
  • array_any() - Проверяет, содержит ли массив array хотя бы один элемент, который удовлетворяет callback-функции
  • array_filter() - Фильтрует элементы массива через callback-функцию
  • array_reduce() - Итеративно уменьшает массив к единственному значению через callback-функцию
Добавить

Примечания пользователей 2 notes

up
9
mail at nititech dot de
1 month ago
A simple fallback For older PHP versions, that do not have array_find:

<?php
function array_find(array $array, callable $callback): mixed {
foreach (
$array as $key => $value) {
if (
$callback($value, $key)) {
return
$value;
}
}

return
null;
}
?>
up
1
php-net at treyssatvincent dot fr
12 hours ago
For older PHP versions, here's the proposed fallback from "mail at nititech dot de" with added PHPDoc if it's any use for you:

<?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;
}
?>
To Top