PHP数组的递归合并

2011-01-14 阅读 48

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

更新于 2023年03月28日