Função array_filter
A função array_filter filtra um array
com uma função especificada. Os elementos do array
serão passados sequencialmente como parâmetro para a função
e, se para esse elemento a função retornar
true - o elemento permanecerá no array, e se
false - será removido. No array permanecerão apenas
os elementos para os quais a função
retornar true.
Se o array original for associativo, as suas chaves serão preservadas.
Sintaxe
array_filter(array $array, ?callable $callback = null, int $mode = 0): array
Exemplo
Vamos deixar no array apenas os elementos positivos:
<?php
function func($num)
{
if ($num >= 0) {
return true;
} else {
return false;
}
}
$arr = [1, -1, 2, -2, 3, -3];
$res = array_filter($arr, 'func');
var_dump($res);
?>
Resultado da execução do código:
[1, 2, 3]
Exemplo
Vamos simplificar a condição:
<?php
function func($num)
{
return $num >= 0;
}
$arr = [1, -1, 2, -2, 3, -3];
$res = array_filter($arr, 'func');
var_dump($res);
?>
Resultado da execução do código:
[1, 2, 3]
Exemplo
Vamos converter para uma função anônima:
<?php
$arr = [1, -1, 2, -2, 3, -3];
$res = array_filter($arr, function($num) {
return $num >= 0;
});
var_dump($res);
?>
Resultado da execução do código:
[1, 2, 3]
Exemplo
Vamos converter para uma arrow function:
<?php
$arr = [1, -1, 2, -2, 3, -3];
$res = array_filter($arr, fn($num) => $num >= 0);
var_dump($res);
?>
Resultado da execução do código:
[1, 2, 3]
Veja também
-
a função
array_map,
que aplica uma função aos elementos de um array -
a função
array_walk,
que chama uma função para os elementos de um array -
a função
array_walk_recursive,
que chama uma função recursivamente para os elementos de um array -
a função
array_reduce,
que reduz um array a um único valor