$origarray1 = array(2.4, 2.6, 3.5);
$origarray2 = array(2.4, 2.6, 3.5);
print_r(array_map('floor', $origarray1)); //$origarray1 stays the same
//changes $origarray2
function callback_array_walk(&$v, $k) { $v = floor($v); }
array_walk($origarray2, callback_array_walk(&$v, $k));
print_r($origarray2);
//this is a more proper use of array_walk
function callback_array_walk2($v, $k) { echo "$k => $v", "\n"; }
array_walk($origarray1, callback_array_walk2($v, $k));
//array_map accepts several arrays
function callback_arraymap($a, $b) { return $a * $b; }
print_r(array_map(callback_arraymap($a, $b), $origarray1, $origarray2));
//select only elements that are > 2.5
function callback_array_filter($a) { return $a > 2.5; }
print_r(array_filter($origarray1,callback_array_filter($a)));
I got error here
array_walk() [function.array-walk]: Wrong syntax for function name in ….
What I misunderstand of these three type(using,calling,passing )?
Try passing the callback function to
array_walkas a string without any arguments:Similarly for
array_mapandarray_filterfunctions pass the callback function as a string.