(PHP 8 >= 8.4.0)
array_any — Проверяет, содержит ли массив array хотя бы один элемент, который удовлетворяет callback-функции
Функция array_any() возвращает true ,
если callback-функция возвращает true хотя бы для одного элемента массива,
иначе функция возвращает false .
arrayМассив (array ), в котором требуется найти элемент.
callbackCallback-функция, которую функция вызовет для проверки элементов входного массива, со следующей сигнатурой:
Функция array_any() вернётtrue и не станет вызывать
callback-функцию для других элементов,
если функция обратного вызова вернёт true
Функция возвращает true , если входной массив содержит хотя бы один элемент,
для которого callback-функция возвращает true , иначе
функция возвращает false .
Пример #1 Пример проверки функцией array_any() того, содержит ли массив хотя бы один элемент, который удовлетворяет callback-функции
<?php
$array = [
'a' => 'dog',
'b' => 'cat',
'c' => 'cow',
'd' => 'duck',
'e' => 'goose',
'f' => 'elephant'
];
// Проверим, содержит ли массив хотя бы одно название животного длиннее 5 букв
var_dump(array_any($array, function (string $value) {
return strlen($value) > 5;
}));
// Проверим, содержит ли массив хотя бы одно название животного короче 3 букв
var_dump(array_any($array, function (string $value) {
return strlen($value) < 3;
}));
// Проверим, содержит ли массив хотя бы одно нестроковое значение
var_dump(array_any($array, function (string $value, $key) {
return !is_string($key);
}));
?>Результат выполнения приведённого примера:
bool(true) bool(false) bool(false)
This can be a replacement for array_filter() where an existence check is the only purpose. But, unlike array_filter(), the callback always requires two arguments. There's no way to change this, so some a lot of old-fashioned string callables are no longer usable.
<?php
$arr = [45, 'abc', 'def', 'ghi'];
if (array_filter($arr, 'is_integer')) {
// works because of loose comparison: [45] == true
}
if (array_any($arr, 'is_integer')) {
// PHP Warning: Uncaught ArgumentCountError: is_integer() expects exactly 1 argument, 2 given
}
?>