array_filter

Filters elements of an array using a callback function

&reftitle.description; `array` `array_filter` `array` `array` `callable` `callback`

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

&reftitle.parameters;

`array`

- The array to iterate over

`callback`

- The callback function to use

  If no `callback` is supplied, all entries of `array` equal to &false; (see converting to boolean) will be removed.

&reftitle.returnvalues;

Returns the filtered array.

&reftitle.examples;

### `array_filter` example

    <?php
    function odd($var)
    {
        // returns whether the input integer is odd
        return($var & 1);
    }

    function even($var)
    {
        // returns whether the input integer is even
        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"));
    ?>

&example.outputs;

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

### `array_filter` without `callback`

    <?php

    $entry = array(
                 0 => 'foo',
                 1 => false,
                 2 => -1,
                 3 => null,
                 4 => ''
              );

    print_r(array_filter($entry));
    ?>

&example.outputs;

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

&reftitle.notes;

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

&reftitle.seealso;

- `array_map`
- `array_reduce`
- `array_walk`