(PHP 4 >= 4.0.6, PHP 5)
array_filter — Bir dizinin elemanlarını bir geriçağırım işleviyle süzgeçten geçirir
dizi dizisinin her elemanını sırayla işlev işlevine aktarır. Eğer işlev TRUE dönerse o dizi elemanı sonuç dizisine konur, yoksa konmaz. Dizideki anahtarlar korunur.
Elemanları tek tek işleve aktarılacak dizi.
Kullanılacak geriçağırım işlevi.
Bu değiştirgede bir geriçağırım işlevi belirtilmezse, boolean türüne dönüşüm yapıldığında FALSE döndüren elemanlar süzülür.
Süzülen dizi döner.
Örnek 1 - array_filter() örneği
<?php
function tek($var)
{
return($var & 1);
}
function cift($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 " Tek:\n";
print_r(array_filter($array1, "tek"));
echo "Çift:\n";
print_r(array_filter($array2, "cift"));
?>
Yukarıdaki örneğin çıktısı:
Tek: Array ( [a] => 1 [c] => 3 [e] => 5 ) Çift: Array ( [0] => 6 [2] => 8 [4] => 10 [6] => 12 )
Örnek 2 - işlevsiz array_filter() örneği
<?php
$girdi = array(
0 => 'foo',
1 => false,
2 => -1,
3 => null,
4 => ''
);
print_r(array_filter($girdi));
?>
Yukarıdaki örneğin çıktısı:
Array ( [0] => foo [2] => -1 )
Eğer geriçağırım işlevinde dizi değişikliğe uğrarsa (yani, elemen ekleme, silme, tanımsız yapma gibi işlemler) bu işlevin davranışı belirsizdir.