array_filter (PHP 4 >= 4.0.6, PHP 5) array_filter --
Filtert Elemente eines Arrays mittels einer Callback-Funktion
Beschreibungarray array_filter ( array input [, callback callback] )
array_filter() übergibt nacheinander alle Werte in dem
Array input and die callback
Funktion. Gibt die callback Funktion true zurück,
wird der aktuelle Wert von input in das Ergebnis-Array
geschrieben. Die Schlüssel des Arrays bleiben erhalten.
Beispiel 1. array_filter() |
<?php
function ungerade($var)
{
return($var & 1);
}
function gerade($var)
{
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
)
|
|
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.
Falls die Function callback nicht angegeben wurde,
wird array_filter() alle Einträge aus dem Array
entfernen, die FALSE sind. Schauen Sie sich Konvertierung in Booleans
für mehr Informationen hierzu an.
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
) |
|
Siehe auch array_map(),
array_reduce() und array_walk().
|