递归更新多维数组的每个元素

时间:2015-06-29 15:33:17

标签: php recursion multidimensional-array

我有一个像这样的大型多维数组:

$array = [
    'a' => 1,
    'b' => 5,
    'c' => [
        'c1' => 12,
        'c2' => [
            'd1' = 4,
            'd2' => 25
        ],
        'c3' => [/*...*/]
    ]
];

数组的大小和维度未知,我正在尝试修改每个元素,例如为每个元素值添加1。

我一直在谷歌上搜索并找到一些递归函数,它们访问每个元素并打印出它的内容,但没有任何关于修改每个元素的信息。

以下代码(我在网上找到)

function x($a) {
    if (!is_array($a)) {
        echo ($a+1);
        return;
    }

    foreach($a as $v) {
        x($v);
    }
}

允许我打印出数组的内容,但是如何修改它以实际用计算更新数组元素而不是回显它?

1 个答案:

答案 0 :(得分:2)

array_walk_recursive ($array, function (&$val) {  $val += 1; });
print_r($array);