array_filter

(PHP 4 >= 4.0.6)

array_filter --  Filtert Elemente eines Arrays mittels einer Callback-Funktion

Beschreibung

array array_filter ( array input [, mixed callback])

array_filter() gibt ein Array mit den mittels der Callback-Funktion gefilterten Elementen von input zurück. Ist input ein assoziatives Array, bleiben die Schlüssel erhalten.

Beispiel 1. array_filter()

function ungerade($var) {
    return ($var % 2 == 1);
}

function gerade($var) {
    return ($var % 2 == 0);
}

$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"));

Wird folgendes ausgeben:
Ungerade :
Array
(
    [a] => 1
    [c] => 3
    [e] => 5
)
Gerade:
Array
(
    [0] => 6
    [2] => 8
    [4] => 10
    [6] => 12
)

Anmerkung: Anstelle eines Funktionsnamens kann auch ein Array mit einer Objekt-Referenz und dem Namen einer Methode angegeben werden.

Von der Benutzerfunktion aus darf das Array selbst nicht geändert werden, wie zum Beispiel durch Hinzufügen oder Löschen eines Elementes, oder auch Löschen des Arrays, auf das array_filter() angewendet wird. Ist das Array geändert, so ist das Verhalten dieser Funktion undefiniert.

Siehe auch array_map() und array_reduce().