Filters elements of an array using a callback function
Syntax
array_filter ( array $array [, callable $callback [, int $flag = 0 ]] ) : array
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 will be removed.
flag
Flag determining what arguments are sent to callback:
0 | pass value as the only argument to callback |
ARRAY_FILTER_USE_KEY | pass key as the only argument to callback |
ARRAY_FILTER_USE_BOTH | pass both value and key as arguments to callback |
Return
Returns the filtered array.
Examples
1 · array
<? $array = array( 0 => null, 1 => false, 2 => 0, 3 => 0.0, 4 => "", 5 => "0", 6 => "0.0", 7 => "abc" ); $return = array_filter($array); print_r($return); ?>
Array ( [6] => 0.0 [7] => abc )
2 · callback · True
<? function myfunction($value) { return $value; } $array = array( 0 => null, 1 => false, 2 => 0, 3 => 0.0, 4 => "", 5 => "0", 6 => "0.0", 7 => "abc" ); $callback = "myfunction"; $return = array_filter($array, $callback); print_r($return); ?>
Array ( [6] => 0.0 [7] => abc )
3 · callback · Even
<? function myfunction($value) { return !($value & 1); } $array = array( "a" => 0, "b" => 1, "c" => 2, "d" => 3, "e" => 4 ); $callback = "myfunction"; $return = array_filter($array, $callback); print_r($return); ?>
Array ( [a] => 0 [c] => 2 [e] => 4 )
4 · flag · 0
<? function myfunction($value) { return $value == 4; } $array = array( "a" => 0, "b" => 1, "c" => 2, "d" => 3, "e" => 4 ); $callback = "myfunction"; $flag = 0; $return = array_filter($array, $callback, $flag); var_dump($return); ?>
array(1) { ["e"]=> int(4) }
5 · flag · ARRAY_FILTER_USE_KEY
<? function myfunction($key) { return $key == "c"; } $array = array( "a" => 0, "b" => 1, "c" => 2, "d" => 3, "e" => 4 ); $callback = "myfunction"; $flag = ARRAY_FILTER_USE_KEY; $return = array_filter($array, $callback, $flag); var_dump($return); ?>
array(1) { ["c"]=> int(2) }
6 · flag · ARRAY_FILTER_USE_BOTH
<? function myfunction($value, $key) { return $value == 4 || $key == "c"; } $array = array( "a" => 0, "b" => 1, "c" => 2, "d" => 3, "e" => 4 ); $callback = "myfunction"; $flag = ARRAY_FILTER_USE_BOTH; $return = array_filter($array, $callback, $flag); var_dump($return); ?>
array(2) { ["c"]=> int(2) ["e"]=> int(4) }