我有一个像这样的大型多维数组:
$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);
}
}
允许我打印出数组的内容,但是如何修改它以实际用计算更新数组元素而不是回显它?
答案 0 :(得分:2)
array_walk_recursive ($array, function (&$val) { $val += 1; });
print_r($array);