PHP 8.5.0 RC4 available for testing

array_find

(PHP 8 >= 8.4.0)

array_findRetorna um primeiro elemento que satisfaz uma função de retorno

Descrição

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

array_find() retorna o valor do primeiro elemento de um array para o qual a função callback retorna true. Se nenhum elemento correspondente for encontrado, a função retorna null.

Parâmetros

array
O array a ser pesquisado.
callback

A função de retorno a ser chamada para verificar cada elemento, que precisa ter a seguinte assinatura:

callback(mixed $value, mixed $key): bool
Se esta função retornar true, o valor é retornado por array_find() e a função de retorno não será chamada para os elementos restantes.

Valor Retornado

A função retorna o valor do primeiro elemento para o qual callback retorna true. Se nenhum elemento correspondente for encontrado, a função retorna null.

Exemplos

Exemplo #1 Exemplo de array_find()

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

// Encontra o primeiro animal com nome maior que 4 letras.
var_dump(array_find($array, function (string $value) {
return
strlen($value) > 4;
}));

// Encontra o primeiro animal cujo nome começa com f.
var_dump(array_find($array, function (string $value) {
return
str_starts_with($value, 'f');
}));

// Encontra o primeiro animal onde a chave do array é a primeira letra do nome.
var_dump(array_find($array, function (string $value, $key) {
return
$value[0] === $key;
}));

// Encontra o primeiro animal onde a chave do array corresponde a uma expressão regular.
var_dump(array_find($array, function ($value, $key) {
return
preg_match('/^([a-f])$/', $key);
}));
?>

O exemplo acima produzirá:

string(8) "cachorro"
NULL
string(8) "elefante"
string(3) "cachorro"

Veja Também

  • array_find_key() - Retorna a chave do primeiro elemento que satisfaz uma função de retorno
  • array_all() - Verifica se todos os elementos de um array satisfazem uma função de retorno
  • array_any() - Verifica se pelo menos um elemento de um array satisfaz uma função de retorno
  • array_filter() - Filtra elementos de um array utilizando uma função callback
  • array_reduce() - Reduz um array para um único valor através de um processo iterativo via callback
adicionar nota

Notas de Usuários 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
5 hours 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