array_filter
Description
The array_filter of Array for PHP filters elements of an array using a callback function.
Syntax
array_filter( array $array, ?callable $callback = null, int $mode = 0 ): array
Parameters
array
The array to iterate over.
callback
The callback function to use.
If no callback is supplied, all empty entries of array will be removed.
mode
Flag determining what arguments are sent to callback:
Value | Constant | Description |
---|---|---|
0 | pass value as the only argument to callback | |
1 | ARRAY_FILTER_USE_BOTH | pass both value and key as arguments to callback |
2 | ARRAY_FILTER_USE_KEY | pass key as the only argument to callback |
Return
Returns the filtered array.
Examples
1 · 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 = [ 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 · strlen
<? $array = [ 0 => null, 1 => false, 2 => 0, 3 => 0.0, 4 => "", 5 => "0", 6 => "0.0", 7 => "abc" ]; $callback = "strlen"; $return = array_filter($array, $callback); print_r($return);
Array ( [2] => 0 [3] => 0 [5] => 0 [6] => 0.0 [7] => abc )
4 · callback · even
<? function myfunction($value) { return !($value & 1); } $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 )
5 · callback · odd
<? function myfunction($value) { return $value & 1; } $array = [ "a" => 0, "b" => 1, "c" => 2, "d" => 3, "e" => 4 ]; $callback = "myfunction"; $return = array_filter($array, $callback); print_r($return);
Array ( [b] => 1 [d] => 3 )
6 · mode · 0
<? function myfunction($value) { return $value == 4; } $array = [ "a" => 0, "b" => 1, "c" => 2, "d" => 3, "e" => 4 ]; $callback = "myfunction"; $mode = 0; $return = array_filter($array, $callback, $mode); print_r($return);
Array ( [e] => 4 )
7 · mode · ARRAY_FILTER_USE_KEY
<? function myfunction($key) { return $key == "c"; } $array = [ "a" => 0, "b" => 1, "c" => 2, "d" => 3, "e" => 4 ]; $callback = "myfunction"; $mode = ARRAY_FILTER_USE_KEY; $return = array_filter($array, $callback, $mode); print_r($return);
Array ( [c] => 2 )
8 · mode · ARRAY_FILTER_USE_BOTH
<? function myfunction($value, $key) { return $value == 4 || $key == "c"; } $array = [ "a" => 0, "b" => 1, "c" => 2, "d" => 3, "e" => 4 ]; $callback = "myfunction"; $mode = ARRAY_FILTER_USE_BOTH; $return = array_filter($array, $callback, $mode); print_r($return);
Array ( [c] => 2 [e] => 4 )
Links
Array
- array
- array_all
- array_any
- array_change_key_case
- array_chunk
- array_column
- array_combine
- array_count_values
- array_diff
- array_diff_assoc
- array_diff_key
- array_diff_uassoc
- array_diff_ukey
- array_fill
- array_fill_keys
- array_find
- array_find_key
- array_flip
- array_intersect
- array_intersect_assoc
- array_intersect_key
- array_intersect_uassoc
- array_intersect_ukey
- array_key_exists
- array_key_first
- array_key_last
- array_keys
- array_map
- array_merge
- array_merge_recursive
- array_multisort
- array_pad
- array_pop
- array_product
- array_push
- array_rand
- array_reduce
- array_replace
- array_replace_recursive
- array_reverse
- array_search
- array_shift
- array_slice
- array_splice
- array_sum
- array_udiff
- array_udiff_assoc
- array_udiff_uassoc
- array_uintersect
- array_uintersect_assoc
- array_uintersect_uassoc
- array_unique
- array_unshift
- array_values
- array_walk
- array_walk_recursive
- arsort
- asort
- compact
- count
- current
- end
- extract
- in_array
- key
- key_exists
- krsort
- ksort
- list
- natcasesort
- natsort
- next
- pos
- prev
- range
- reset
- rsort
- shuffle
- sizeof
- sort
- uasort
- uksort
- usort