Función array_filter
La función array_filter filtra un array
usando una función dada. Los elementos del array
se pasarán secuencialmente como parámetro a la función
y, si para ese elemento la función devuelve
true - el elemento permanecerá en el array, y si
false - será eliminado. En el array solo permanecerán
aquellos elementos para los que la función
devuelva true.
Si el array original es asociativo, se conservarán sus claves.
Sintaxis
array_filter(array $array, ?callable $callback = null, int $mode = 0): array
Ejemplo
Dejemos en el array solo los 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 de ejecutar el código:
[1, 2, 3]
Ejemplo
Acortemos la condición:
<?php
function func($num)
{
return $num >= 0;
}
$arr = [1, -1, 2, -2, 3, -3];
$res = array_filter($arr, 'func');
var_dump($res);
?>
Resultado de ejecutar el código:
[1, 2, 3]
Ejemplo
Convirtamos a función anónima:
<?php
$arr = [1, -1, 2, -2, 3, -3];
$res = array_filter($arr, function($num) {
return $num >= 0;
});
var_dump($res);
?>
Resultado de ejecutar el código:
[1, 2, 3]
Ejemplo
Convirtamos a función flecha:
<?php
$arr = [1, -1, 2, -2, 3, -3];
$res = array_filter($arr, fn($num) => $num >= 0);
var_dump($res);
?>
Resultado de ejecutar el código:
[1, 2, 3]
Véase también
-
la función
array_map,
que aplica una función a los elementos de un array -
la función
array_walk,
que llama a una función para los elementos de un array -
la función
array_walk_recursive,
que llama recursivamente a una función para los elementos de un array -
la función
array_reduce,
que reduce un array