Applies the user-defined function named by func to each element of arr. func will be passed array value as the first parameter and array key as the second parameter. If userdata is supplied, it will be passed as the third parameter to the user function. func must be a user-defined function, and can't be a native PHP function. Thus, you can't use array_walk() straight with str2lower(), you must build a user-defined function with it first, and pass this function as argument.
If func requires more than two or three arguments, depending on userdata, a warning will be generated each time array_walk() calls func. These warnings may be suppressed by prepending the '@' sign to the array_walk() call, or by using error_reporting().
Note: If func needs to be working with the actual values of the array, specify that the first parameter of func should be passed by reference. Then any changes made to those elements will be made in the array itself.
Note: Passing the key and userdata to func was added in 4.0.
In PHP 4 reset() needs to be called as necessary since array_walk() does not reset the array by default.