(PHP 4 >= 4.0.6, PHP 5, PHP 7)
array_filter — Filtert Elemente eines Arrays mittels einer Callback-Funktion
   Iteriert über jeden Wert im Array array
   und übergibt diesen der Callbackfunktion callback.
   Gibt die Funktion callback true zurück, so
   wird der aktuelle Wert von array in das 
   Ergebnis-Array geschrieben. Die Schlüssel des Arrays bleiben erhalten.
  
arrayDas Array, über das iteriert werden soll
callbackDie zu verwendende Callbackfunktion
       Falls die Funktion callback nicht angegeben wurde,
       werden alle Einträge aus array entfernt, 
       die FALSE sind. Schauen Sie sich Konvertierung in Booleans
       für mehr Informationen hierzu an.
      
flag
       Flag, welches bestimmt welche Parameter an callback gesendet werden:
       
ARRAY_FILTER_USE_KEY - nur der Schlüssel wird als einziger
         Parameter an callback gesendet statt des Werte.
        ARRAY_FILTER_USE_BOTH - sowohl der Schlüssel als auch
         der Wert werden als Parameter an callback übergeben statt des
         Wertes.
        Gibt das gefilterte Array zurück.
| Version | Beschreibung | 
|---|---|
| 5.6.0 | 
       Der optionale Parameter flag und die Konstanten
       ARRAY_FILTER_USE_KEY und 
       ARRAY_FILTER_USE_BOTH wurden hinzugefügt.
       | 
     
Beispiel #1 array_filter()-Beispiel
<?php
function ungerade($var)
{
    // Gibt zurück, ob der Eingabewert ungerade ist
    return($var & 1);
}
function gerade($var)
{
    // Gibt zurück, ob der Eingabewert gerade ist
    return(!($var & 1));
}
$array1 = array("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5);
$array2 = array(6, 7, 8, 9, 10, 11, 12);
echo "Ungerade :\n";
print_r(array_filter($array1, "ungerade"));
echo "Gerade:\n";
print_r(array_filter($array2, "gerade"));
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
Ungerade :
Array
(
    [a] => 1
    [c] => 3
    [e] => 5
)
Gerade:
Array
(
    [0] => 6
    [2] => 8
    [4] => 10
    [6] => 12
)
Beispiel #2 array_filter() ohne
    callback
<?php
$entry = array(
             0 => 'foo',
             1 => false,
             2 => -1,
             3 => null,
             4 => ''
          );
print_r(array_filter($entry));
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
Array
(
    [0] => foo
    [2] => -1
)
Beispiel #3 array_filter() mit 
    flag
<?php
$arr = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4];
var_dump(array_filter($arr, function($k) {
    return $k == 'b';
}, ARRAY_FILTER_USE_KEY));
var_dump(array_filter($arr, function($v, $k) {
    return $k == 'b' || $v == 4;
}, ARRAY_FILTER_USE_BOTH));
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
array(1) {
  ["b"]=>
  int(2)
}
array(2) {
  ["b"]=>
  int(2)
  ["d"]=>
  int(4)
}
Wird das Array durch die Callbackfunktion verändert (z.B. hinzufügen oder löschen von Elementen oder ein unset-Aufruf), so ist das Verhalten dieser Funktion undefiniert.