(PHP 4 >= 4.0.6, PHP 5)
array_filter — Филтрира елементите на масив посредством функция за обратно извикване
Извършва итериране в масива input , като предава елементите на функцията указана с параметъра callback . Ако функцията за обратно извикване върне true, текущата стойност от input ще бъде върната в резултатния масив. Ключовете на масивите се запазват.
Масивът, над който се извършват итерациите
Функцията за обратно извикване, която ще бъде използвана
Ако не е установен callback , всички елементи на input , които имат стойности равни на FALSE (вж. преобразуване в булев тип) ще бъдат отстранени.
Връща филтрираният масив.
Example #1 Пример за array_filter()
<?php
function odd($var)
{
return($var & 1);
}
function even($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 "Нечетни :\n";
print_r(array_filter($array1, "odd"));
echo "Четни:\n";
print_r(array_filter($array2, "even"));
?>
Примерът по-горе ще изведе:
Нечетни : Array ( [a] => 1 [c] => 3 [e] => 5 ) Четни: Array ( [0] => 6 [2] => 8 [4] => 10 [6] => 12 )
Example #2 array_filter() без callback
<?php
$entry = array(
0 => 'foo',
1 => false,
2 => -1,
3 => null,
4 => ''
);
print_r(array_filter($entry));
?>
Примерът по-горе ще изведе:
Array ( [0] => foo [2] => -1 )
Ако масивът е променен от функцията за обратно извикване (като например е изтрит, добавен или унищожен елемент) поведението на функцията не е дефинирано.