# array_walk_recursive

(PHP 5, PHP 7)

array_walk_recursive — 对数组中的每个成员递归地应用用户函数

### 说明

array_walk_recursive ( array `&$array` , callable `$callback` [, mixed `$userdata` = `NULL` ] ) : bool

将用户自定义函数 `callback` 应用到 `array` 数组中的每个单元。本函数会递归到更深层的数组中去。

### 参数

`array`

  输入的数组。

`callback`

  典型情况下 `callback` 接受两个参数。`array` 参数的值作为第一个，键名作为第二个。

  > Note:

  > 如果 `callback` 需要直接作用于数组中的值，则给 `callback` 的第一个参数指定为引用。这样任何对这些单元的改变也将会改变原始数组本身。

`userdata`

  如果提供了可选参数 `userdata`，将被作为第三个参数传递给 `callback`。

### 返回值

成功时返回 `TRUE`， 或者在失败时返回 `FALSE`。

### 范例

Example #1 array_walk_recursive() 例子

    <?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');
    ?>

以上例程会输出：

    a holds apple
    b holds banana
    sour holds lemon

注意上例中的键 'sweet' 并没有显示出来。任何其值为 array 的键都不会被传递到回调函数中去。

### 参见

- array_walk() - 使用用户自定义函数对数组中的每个元素做回调处理
- callback 类型的信息