PHP 8.6.0 Beta 1 is available for testing

array_any

(PHP 8 >= 8.4.0)

array_anyVerifica que al menos un elemento del array valide la función de retrollamada

Descripción

function array_any(array $array, callable $callback): bool

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 .

Parámetros

array
El array a recorrer.
callback

La función de retrollamada a utilizar para verificar cada elemento, que debe respetar la siguiente firma:

function callback(mixed $value, mixed $key): bool
Si esta función devuelve true , true será devuelto por array_any() y la función de retrollamada no será llamada para los otros elementos.

Valores devueltos

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 .

Ejemplos

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)

Véase también

  • array_all() - Verifica si todos los elementos del array validan la función de retrollamada
  • array_filter() - Filtra los elementos de un array mediante una función de retrollamada
  • array_find() - Devuelve el primer elemento que valida la función de retrollamada
  • array_find_key() - Devuelve la clave del primer elemento que valida la función de retrollamada

Found A Problem?

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

User Contributed Notes 1 note

up
0
miken32 at example dot com
11 months ago
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
}
?>
+add a note

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