array_walk
Apply a user function to every member of an array
Descriptionintarray_walkarrayarraystringfuncmixeduserdata
Applies the user-defined function func to each
element of the array array. Typically,
func takes on two parameters.
The array parameter's value being the first, and
the key/index second. If the optional userdata
parameter is supplied, it will be passed as the third parameter to
function func.
func must be a user-defined function, not a
built-in PHP function such as strtolower or
stripslashes. The user-defined function can
use built-in PHP functions.
¬e.func-callback;
If function func requires more parameters than
given to it, an error of level
E_WARNING will be generated each time array_walk
calls func. These warnings may be suppressed by
prepending the PHP error operator
@ to the
array_walk call, or by using
error_reporting.
If func needs to be working with the
actual values of the array, specify the first parameter of
func as a
reference. Then,
any changes made to those elements will be made in the
original array itself.
Passing the key and userdata to func was
added in 4.0.0
array_walk is not affected by the internal
array pointer of array.
array_walk will walk through the entire array
regardless of pointer position. To reset the pointer, use
reset. In PHP 3,
array_walk resets the pointer.
Users may not change the array itself from the callback
function. e.g. Add/delete elements, unset elements, etc. If
the array that array_walk is applied to
is changed, the behavior of this function is undefined, and
unpredictable.
array_walk example
"lemon", "a"=>"orange", "b"=>"banana", "c"=>"apple");
function test_alter (&$item1, $key, $prefix) {
$item1 = "$prefix: $item1";
}
function test_print ($item2, $key) {
echo "$key. $item2 \n";
}
echo "Before ...:\n";
array_walk ($fruits, 'test_print');
array_walk ($fruits, 'test_alter', 'fruit');
echo "... and after:\n";
array_walk ($fruits, 'test_print');
?>
]]>
The printout of the program above will be:
See also list, foreach,
each, and call_user_func_array.