array_filter

Функция применяет фильтр к массиву, используя пользовательскую функцию.
Синтаксис:

array array_filter(array input [, callback callback])

Функция array_filter() возвращает массив, который содержит значения, имеющиеся в массиве input отфильтрованные в соответсвтии с результатами работы пользовательской функции callback.
В случае, если исходный массив input является ассоциативным массивом, в результирующем массиве индексы сохраняются.
Пример использования функции array_filter():

<?phpfunction odd($var) {
return ($var % 2 == 1);
}

function even($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 "Нечетные :n";
print_r(array_filter($array1, "odd"));
echo "Четные :n";
t_r(array_filter($array2, "even"));
?>

Пример выведет следующее:

Нечетные :Array(
[a] => 1
[c] => 3
[e] => 5
)
Четные :Array(
[0] => 6
[2] => 8
[4] => 10
[6] => 12
)

Стоит отметить, что вместо имени фильтрующей функции можно указать массив, который содержит ссылку на объект и имя метода.
Также стоит отметить, что при обработке массива фукцией array_filter() его нельзя изменять: добавлять, удалять элементы или обнулять массив, т.к. это может привести к некоррекстной работе функции.
Функция поддерживается PHP 4 >= 4.0.6, PHP 5