array_merge_recursive在键值相同时,不会覆盖已有的值,只是将其变为一个数组,同时存入。
一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。 如果输入的数组中有相同的字符串键名,则这些值会被合并到一个数组中去,这将递归下去,因此如果一个值本身是一个数组,本函数将按照相应的条目把它合并为另一个数组。然而,如果数组具有相同的数组键名,后一个值将不会覆盖原来的值,而是附加到后面。
例子:
<pre class="brush:php;"> $arr1 = array("a" => array("1" => "2"), 3, 'b'=>4);
$arr2 = array(5, "a" => array("6" => "7", "8"), 'b' => 2);
$result = array_merge_recursive($arr1, $arr2);
var_dump($result);
```
<p>
结果:</p>
<pre class="brush:plain;"> array(4) {
["a"]=>
array(3) {
[1]=>
string(1) "2"
[2]=>
string(1) "7"
[3]=>
string(1) "8"
}
[0]=>
int(3)
["b"]=>
array(2) {
[0]=>
int(4)
[1]=>
int(2)
}
[1]=>
int(5)
}
```
php 数组 递归 合并 array_merge_recursive