Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

array_filter(3) [php man page]

ARRAY_FILTER(3) 							 1							   ARRAY_FILTER(3)

array_filter - Filters elements of an array using a callback function

SYNOPSIS
array array_filter (array $array, [callable $callback], [int $flag]) DESCRIPTION
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. PARAMETERS
o $array - The array to iterate over o $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. o $flag - Flag determining what arguments are sent to $callback: o ARRAY_FILTER_USE_KEY - pass key as the only argument to $callback instead of the value o ARRAY_FILTER_USE_BOTH - pass both value and key as arguments to $callback instead of the value RETURN VALUES
Returns the filtered array. CHANGELOG
+--------+---------------------------------------------------+ |Version | | | | | | | Description | | | | +--------+---------------------------------------------------+ | 5.6.0 | | | | | | | Added optional $flag parameter and constants | | | ARRAY_FILTER_USE_KEY and ARRAY_FILTER_USE_BOTH | | | | +--------+---------------------------------------------------+ EXAMPLES
Example #1 array_filter(3) 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 : "; print_r(array_filter($array1, "odd")); echo "Even: "; 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(3) 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 ) Example #3 array_filter(3) with $flag <?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)); ?> The above example will output: array(1) { ["b"]=> int(2) } array(2) { ["b"]=> int(2) ["d"]=> int(4) } NOTES
Caution If the array is changed from the callback function (e.g. element added, deleted or unset) the behavior of this function is unde- fined. SEE ALSO
array_map(3), array_reduce(3), array_walk(3). PHP Documentation Group ARRAY_FILTER(3)

Check Out this Related Man Page

ARRAY_MERGE(3)								 1							    ARRAY_MERGE(3)

array_merge - Merge one or more arrays

SYNOPSIS
array array_merge (array $array1, [array $...]) DESCRIPTION
Merges the elements of one or more arrays together so that the values of one are appended to the end of the previous one. It returns the resulting array. If the input arrays have the same string keys, then the later value for that key will overwrite the previous one. If, however, the arrays contain numeric keys, the later value will not overwrite the original value, but will be appended. Values in the input array with numeric keys will be renumbered with incrementing keys starting from zero in the result array. PARAMETERS
o $array1 - Initial array to merge. o $... - Variable list of arrays to merge. RETURN VALUES
Returns the resulting array. EXAMPLES
Example #1 array_merge(3) example <?php $array1 = array("color" => "red", 2, 4); $array2 = array("a", "b", "color" => "green", "shape" => "trapezoid", 4); $result = array_merge($array1, $array2); print_r($result); ?> The above example will output: Array ( [color] => green [0] => 2 [1] => 4 [2] => a [3] => b [shape] => trapezoid [4] => 4 ) Example #2 Simple array_merge(3) example <?php $array1 = array(); $array2 = array(1 => "data"); $result = array_merge($array1, $array2); ?> Don't forget that numeric keys will be renumbered! Array ( [0] => data ) If you want to append array elements from the second array to the first array while not overwriting the elements from the first array and not re-indexing, use the + array union operator: <?php $array1 = array(0 => 'zero_a', 2 => 'two_a', 3 => 'three_a'); $array2 = array(1 => 'one_b', 3 => 'three_b', 4 => 'four_b'); $result = $array1 + $array2; var_dump($result); ?> The keys from the first array will be preserved. If an array key exists in both arrays, then the element from the first array will be used and the matching key's element from the second array will be ignored. array(5) { [0]=> string(6) "zero_a" [2]=> string(5) "two_a" [3]=> string(7) "three_a" [1]=> string(5) "one_b" [4]=> string(6) "four_b" } Example #3 array_merge(3) with non-array types <?php $beginning = 'foo'; $end = array(1 => 'bar'); $result = array_merge((array)$beginning, (array)$end); print_r($result); ?> The above example will output: Array ( [0] => foo [1] => bar ) SEE ALSO
array_merge_recursive(3), array_replace(3), array_combine(3), array operators. PHP Documentation Group ARRAY_MERGE(3)
Man Page