array_walk Apply a user function to every member of an array Description intarray_walk arrayarray stringfunc mixeduserdata 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. <function>array_walk</function> 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.