Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
PHP: array_find - Manual
[go: Go Back, main page]

PHP 8.5.0 RC4 available for testing

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 ejemplo anterior mostrará:

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 2 notes

up
13
mail at nititech dot de
6 months ago
A simple fallback For older PHP versions, that do not have array_find:

<?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;
}
?>
up
0
harl at gmail dot com
1 day ago
Note that if null satisfies the callback then there is no way to tell if null was returned because it was found in the array or if it was because nothing satisfying the callback was found.

In this case, it'll be more robust to use array_find_key; null can't be a key, so if that's what you get it must be because the search failed to find a match.

Obviously, you'd then use the array key to look up the corresponding value in the array.
To Top