0

我有 2 个数组:

$bigArr = array(
    'simple'=>1
    'advanced'=>array(
        'advanceSimple'=>1,
        'advanceadvance'=>array(
            'simple'=>1
        )  
    )
)

$overide = array(
    'advanced'=>array(
        'advanceSimple'=>2,
        'extra'=>5
    )
)

这两个的合并应该是:

$bigArr = array(
    'simple'=>1
    'advanced'=>array(
        'advanceSimple'=>2,
        'extra'=>5,
        'advanceadvance'=>array(
            'simple'=>1
        )  
    )
)

您会看到,小数组的覆盖只会覆盖键存在的地方,并将添加数据不存在的地方。

我尝试了许多递归迭代器和循环的方法,但仍然没有成功。

您有任何想法或类似的解决方法。

4

2 回答 2

1
$bigArr = array(
    'simple'=>1,
    'advanced'=>array(
        'advanceSimple'=>1,
        'advanceadvance'=>array(
            'simple'=>1
        )  
    )
);
$overide = array(
    'advanced'=>array(
        'advanceSimple'=>2,
        'extra'=>5
    )
);
$res = array_merge_recursive($bigArr,$overide);

那是你需要的吗?

于 2013-10-21T13:25:22.397 回答
0

Answer for PHP 5.3 +

$bigArr = array(
    'simple'=>1,
    'advanced'=>array(
        'advanceSimple'=>1,
        'advanceadvance'=>array(
            'simple'=>1
        )
    )
);
$overide = array(
    'advanced'=>array(
        'advanceSimple'=>2,
        'extra'=>5
    )
);
$array = array_replace_recursive($bigArr,$overide);
echo "<pre>";
print_R($array);
于 2013-10-21T13:32:56.593 回答