Apply a user function recursively to every member of an array

- « array_walk

- arsort »

- PHP Manual
- Array Functions
- Apply a user function recursively to every member of an array

# array_walk_recursive

(PHP 5, PHP 7, PHP 8)

array_walk_recursive — Apply a user function recursively to every member of an array

### Description

array_walk_recursive(array|object `&$array`, callable `$callback`, mixed `$arg` = `null`): true

Applies the user-defined `callback` function to each element of the `array`. This function will recurse into deeper arrays.

### Parameters

`array`

  The input array.

`callback`

  Typically, `callback` takes on two parameters. The `array` parameter's value being the first, and the key/index second.

  > Note:

  > If `callback` needs to be working with the actual values of the array, specify the first parameter of `callback` as a reference. Then, any changes made to those elements will be made in the original array itself.

`arg`

  If the optional `arg` parameter is supplied, it will be passed as the third parameter to the `callback`.

### Return Values

Always returns `true`.

### Changelog

Version | Description
--- | ---
8.2.0 | The return type is `true` now; previously, it was bool.

### Examples

Example #1 array_walk_recursive() example

    <?php
    $sweet = array('a' => 'apple', 'b' => 'banana');
    $fruits = array('sweet' => $sweet, 'sour' => 'lemon');

    function test_print($item, $key)
    {
        echo "$key holds $item\n";
    }

    array_walk_recursive($fruits, 'test_print');
    ?>

The above example will output:

    a holds apple
    b holds banana
    sour holds lemon

You may notice that the key '`sweet`' is never displayed. Any key that holds an array will not be passed to the function.

### See Also

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