PHP Manual
Prev |  | Next

# array_walk

(3.0.3 - 3.0.18 only, PHP 4 >= 4.0.0)

array_walk -- Apply a user function to every member of an array

## Description

``int array_walk` (array arr, string func [, mixed userdata])`

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.

> Note: Instead of a function name, an array containing an object reference and a method name can also be supplied.

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.

> Modifying the array from inside `func` may cause unpredictable behavior.

> 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.

Example 1. array_walk() example
    $fruits = array ("d"=>"lemon", "a"=>"orange", "b"=>"banana", "c"=>"apple");

    function test_alter (&$item1, $key, $prefix) {
        $item1 = "$prefix: $item1";
    }

    function test_print ($item2, $key) {
        echo "$key. $item2<br>\n";
    }

    array_walk ($fruits, 'test_print');
    reset ($fruits);
    array_walk ($fruits, 'test_alter', 'fruit');
    reset ($fruits);
    array_walk ($fruits, 'test_print');

See also each() and list().

Prev | Home | Next
array_values | Up | arsort