Funzione array_filter
La funzione array_filter filtra un array
utilizzando una funzione specificata. Il parametro della funzione
riceverà sequenzialmente gli elementi dell'array
e, se per quell'elemento la funzione restituirà
true - l'elemento rimarrà nell'array, mentre se
false - verrà rimosso. Nell'array rimarranno solo
gli elementi per i quali la funzione
restituirà true.
Se l'array originale è associativo, le sue chiavi vengono preservate.
Sintassi
array_filter(array $array, ?callable $callback = null, int $mode = 0): array
Esempio
Lasciamo nell'array solo gli elementi positivi:
<?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);
?>
Risultato dell'esecuzione del codice:
[1, 2, 3]
Esempio
Semplifichiamo la condizione:
<?php
function func($num)
{
return $num >= 0;
}
$arr = [1, -1, 2, -2, 3, -3];
$res = array_filter($arr, 'func');
var_dump($res);
?>
Risultato dell'esecuzione del codice:
[1, 2, 3]
Esempio
Convertiamo in una funzione anonima:
<?php
$arr = [1, -1, 2, -2, 3, -3];
$res = array_filter($arr, function($num) {
return $num >= 0;
});
var_dump($res);
?>
Risultato dell'esecuzione del codice:
[1, 2, 3]
Esempio
Convertiamo in una funzione freccia:
<?php
$arr = [1, -1, 2, -2, 3, -3];
$res = array_filter($arr, fn($num) => $num >= 0);
var_dump($res);
?>
Risultato dell'esecuzione del codice:
[1, 2, 3]
Vedi anche
-
la funzione
array_map,
che applica una funzione agli elementi dell'array -
la funzione
array_walk,
che chiama una funzione per gli elementi dell'array -
la funzione
array_walk_recursive,
che chiama ricorsivamente una funzione per gli elementi dell'array -
la funzione
array_reduce,
che riduce un array