(PHP 8 >= 8.4.0)
array_any — Verifica que al menos un elemento del array valide la función de retrollamada
array_any() devuelve true , si la función de retrollamada
callback devuelve true para al menos un elemento.
De lo contrario, la función devuelve false .
La función devuelve true , si hay al menos un elemento para el cual
la función de retrollamada callback devuelve true .
De lo contrario, la función devuelve false .
Ejemplo #1 Ejemplo con array_any()
<?php
$array = [
'a' => 'perro',
'b' => 'gato',
'c' => 'vaca',
'd' => 'pato',
'e' => 'ganso',
'f' => 'elefante'
];
// Verificar si el nombre de un animal tiene más de 5 letras.
var_dump(array_any($array, function (string $value) {
return strlen($value) > 5;
}));
// Verificar si el nombre de un animal tiene menos de 3 letras.
var_dump(array_any($array, function (string $value) {
return strlen($value) < 3;
}));
// Verificar si una clave de array no es una cadena.
var_dump(array_any($array, function (string $value, $key) {
return !is_string($key);
}));
?>El ejemplo anterior mostrará:
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
}
?>