PHP.nl

array_filter

array_filter

Filters elements of an array using a callback function

array **array_filter** array $array  $callback int $mode

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

Array keys are preserved, and may result in gaps if the was indexed. The result array can be reindexed using the function. array``array_values

arrayThe array to iterate over

callbackThe callback function to use

   If no  is supplied, all empty entries of
    will be removed. See 
   for how PHP defines empty in this case.
  `callback``array``empty`

mode Flag determining what arguments are sent to :

   Default is  which will pass value as the only argument
   to  instead.
  `callback`- - pass key as the only argument          to  instead of the value`ARRAY_FILTER_USE_KEY``callback`
    • pass both value and key as arguments to instead of the valueARRAY_FILTER_USE_BOTH``callback

0``callback

Returns the filtered array.

Voorbeeld: 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 = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5];
$array2 = [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"));
?>
Odd :
Array
(
    [a] => 1
    [c] => 3
    [e] => 5
)
Even:
Array
(
    [0] => 6
    [2] => 8
    [4] => 10
    [6] => 12
)

**Voorbeeld: without **

<?php

$entry = [
    0 => 'foo',
    1 => false,
    2 => -1,
    3 => null,
    4 => '',
    5 => '0',
    6 => 0,
];

print_r(array_filter($entry));
?>
Array
(
    [0] => foo
    [2] => -1
)

**Voorbeeld: with **

<?php

$arr = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4];

var_dump(array_filter($arr, function($k) {
    return $k == 'b';
}, ARRAY_FILTER_USE_KEY));

var_dump(array_filter($arr, function($v, $k) {
    return $k == 'b' || $v == 4;
}, ARRAY_FILTER_USE_BOTH));
?>
array(1) {
  ["b"]=>
  int(2)
}
array(2) {
  ["b"]=>
  int(2)
  ["d"]=>
  int(4)
}

Let op: > If the array is changed from the callback function (e.g. element added or unset) the behavior of this function is undefined.

array_intersect``array_find``array_any``array_map``array_reduce