首页 > 解决方案 > PHP array_walk_recursive 替换错误值

问题描述

我的数据源是我 json_decode($origJason,true) 到数组 $j1 的这个 JSON。

我无法控制我得到的 JSON。

{
"A": {
    "This": "AAA"
},
"B": {
    "That": ["CCC", "DDD"]
}

}

数组看起来像这样

Array
(
    [A] => Array
        (
            [This] => AAA
        )

    [B] => Array
        (
            [That] => Array
                (
                    [0] => CCC
                    [1] => DDD
                )

        )

)

我想用“ZZZ”替换键“This”的值

function array_replacing(&$item, $key){

    if($key == 'This')
    $item = 'ZZZ';
    
}

   array_walk_recursive($j1, 'array_replacing');

该函数还替换“That”数组中的第一个值。

Array
(
    [A] => Array
        (
            [This] => ZZZ
        )
    [B] => Array
        (
            [That] => Array
                (
                    [0] => ZZZ
                    [1] => DDD
                )
        )
)

当我尝试 json_decode($origJason,true) 时,我遇到了这个问题。

当我尝试 json_decode($origJason,false) 时,没有替代品。

我不知道这里发生了什么以及如何解决这个问题。

将不胜感激的解决方案。

谢谢!

标签: phpmultidimensional-array

解决方案


推荐阅读