Forum und email

array_filter

(PHP 4 >= 4.0.6, PHP 5)

array_filter — Filtert Elemente eines Arrays mittels einer Callback-Funktion

Beschreibung

array 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.

Example#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(6789101112);

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.

Example#2 array_filter() ohne callback

<?php

$entry 
= array(
             
=> 'foo',
             
=> false,
             
=> -1,
             
=> null,
             
=> ''
          
);

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().