Funktion array_filter
Die Funktion array_filter filtert ein Array
mit einer angegebenen Funktion. An den Parameter der Funktion
werden nacheinander die Elemente des Arrays
übergeben und, wenn die Funktion für dieses Element
true zurückgibt - bleibt das Element im Array, und wenn
false - wird es entfernt. Im Array bleiben nur
diejenigen Elemente, für die die Funktion
true zurückgibt.
Wenn das ursprüngliche Array assoziativ ist, werden seine Schlüssel beibehalten.
Syntax
array_filter(array $array, ?callable $callback = null, int $mode = 0): array
Beispiel
Lassen wir im Array nur positive Elemente übrig:
<?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);
?>
Das Ergebnis der Codeausführung:
[1, 2, 3]
Beispiel
Verkürzen wir die Bedingung:
<?php
function func($num)
{
return $num >= 0;
}
$arr = [1, -1, 2, -2, 3, -3];
$res = array_filter($arr, 'func');
var_dump($res);
?>
Das Ergebnis der Codeausführung:
[1, 2, 3]
Beispiel
Ändern wir es in eine anonyme Funktion:
<?php
$arr = [1, -1, 2, -2, 3, -3];
$res = array_filter($arr, function($num) {
return $num >= 0;
});
var_dump($res);
?>
Das Ergebnis der Codeausführung:
[1, 2, 3]
Beispiel
Ändern wir es in eine Pfeilfunktion:
<?php
$arr = [1, -1, 2, -2, 3, -3];
$res = array_filter($arr, fn($num) => $num >= 0);
var_dump($res);
?>
Das Ergebnis der Codeausführung:
[1, 2, 3]
Siehe auch
-
die Funktion
array_map,
die eine Funktion auf die Elemente eines Arrays anwendet -
die Funktion
array_walk,
die eine Funktion für die Elemente eines Arrays aufruft -
die Funktion
array_walk_recursive,
die rekursiv eine Funktion für die Elemente eines Arrays aufruft -
die Funktion
array_reduce,
die ein Array reduziert