Funkcja array_filter
Funkcja array_filter filtruje tablicę
za pomocą zadanej funkcji. Do parametru funkcji
kolejno będą trafiać elementy tablicy
i, jeśli dla tego elementu funkcja zwróci
true - element pozostanie w tablicy, a jeśli
false - zostanie usunięty. W tablicy pozostaną tylko
te elementy, dla których funkcja
zwróci true.
Jeśli oryginalna tablica jest asocjacyjna, to jej klucze są zachowywane.
Składnia
array_filter(array $array, ?callable $callback = null, int $mode = 0): array
Przykład
Pozostawmy w tablicy tylko dodatnie elementy:
<?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);
?>
Wynik wykonania kodu:
[1, 2, 3]
Przykład
Skróćmy warunek:
<?php
function func($num)
{
return $num >= 0;
}
$arr = [1, -1, 2, -2, 3, -3];
$res = array_filter($arr, 'func');
var_dump($res);
?>
Wynik wykonania kodu:
[1, 2, 3]
Przykład
Przeróbmy na funkcję anonimową:
<?php
$arr = [1, -1, 2, -2, 3, -3];
$res = array_filter($arr, function($num) {
return $num >= 0;
});
var_dump($res);
?>
Wynik wykonania kodu:
[1, 2, 3]
Przykład
Przeróbmy na funkcję strzałkową:
<?php
$arr = [1, -1, 2, -2, 3, -3];
$res = array_filter($arr, fn($num) => $num >= 0);
var_dump($res);
?>
Wynik wykonania kodu:
[1, 2, 3]
Zobacz też
-
funkcję
array_map,
która stosuje funkcję do elementów tablicy -
funkcję
array_walk,
która wywołuje funkcję dla elementów tablicy -
funkcję
array_walk_recursive,
która rekurencyjnie wywołuje funkcję dla elementów tablicy -
funkcję
array_reduce,
która redukuje tablicę