# array_filter

(PHP 4 >= 4.0.6, PHP 5)

array_filter — Filters elements of an array using a callback function

### Description

array array_filter ( array `$input` [, callback `$callback` ] )

Iterates over each value in the `input` array passing them to the `callback` function. If the `callback` function returns true, the current value from `input` is returned into the result array. Array keys are preserved.

### Parameters

`input`

  The array to iterate over

`callback`

  The callback function to use

  If no `callback` is supplied, all entries of `input` equal to `FALSE` (see converting to boolean) will be removed.

### Return Values

Returns the filtered array.

### Examples

Example#1 array_filter() example

`<?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 "Odd :\n";
print_r(array_filter($array1, "odd"));
echo "Even:\n";
print_r(array_filter($array2, "even"));
?>`

The above example will output:

    Odd :
    Array
    (
        [a] => 1
        [c] => 3
        [e] => 5
    )
    Even:
    Array
    (
        [0] => 6
        [2] => 8
        [4] => 10
        [6] => 12
    )

Example#2 array_filter() without `callback`

`<?php
$entry = array(
0 => 'foo',
1 => false,
2 => -1,
3 => null,
4 => ''
);
print_r(array_filter($entry));
?>`

The above example will output:

    Array
    (
        [0] => foo
        [2] => -1
    )

### Notes

Caution

If the array is changed from the callback function (e.g. element added, deleted or unset) the behavior of this function is undefined.

### See Also

- array_map()
- array_reduce()
- array_walk()