PHP 8.3.21 Released!

array_find

(PHP 8 >= 8.4.0)

array_findDevuelve el primer elemento que valida la función de retrollamada

Descripción

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

array_find() devuelve el valor del primer elemento del array para el cual la función de retrollamada callback devuelve true. Si ningún elemento es encontrado, la función devuelve null.

Parámetros

array
El array a recorrer.
callback

La función de retrollamada a utilizar, que debe respetar la siguiente firma

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

Valores devueltos

La función devuelve el valor del primer elemento para el cual el callback devuelve true. Si ningún elemento es encontrado, la función devuelve null.

Ejemplos

Ejemplo #1 Ejemplo con array_find()

<?php
$array
= [
'a' => 'perro',
'b' => 'vaca',
'c' => 'gato',
'd' => 'pato',
'e' => 'ganso',
'f' => 'elefante'
];

// Encontrar el primer animal cuyo nombre tiene más de 5 caracteres.
var_dump(array_find($array, function (string $value) {
return
strlen($value) > 5;
}));

// Encontrar el primer animal cuyo nombre comienza con f.
var_dump(array_find($array, function (string $value) {
return
str_starts_with($value, 'f');
}));

// Encontrar el primer animal cuya clave es la primera letra de su nombre.
var_dump(array_find($array, function (string $value, $key) {
return
$value[0] === $key;
}));

// Encontrar el primer animal cuya clave valida una RegEx.
var_dump(array_find($array, function ($value, $key) {
return
preg_match('/^([a-f])$/', $key);
}));
?>

El resultado del ejemplo sería:

string(5) "pato"
NULL
string(3) "gato"
string(3) "perro"

Ver también

  • array_find_key() - Devuelve la clave del primer elemento que valida la función de retrollamada
  • array_all() - Verifica si todos los elementos del array validan la función de retrollamada
  • array_any() - Verifica que al menos un elemento del array valide la función de retrollamada
  • array_filter() - Filtra los elementos de un array mediante una función de retrollamada
  • array_reduce() - Reduce itérativemente un array
add a note

User Contributed Notes 1 note

up
1
mail at nititech dot de
20 days 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;
}
?>
To Top