WithCoderWithCoderWithCoder

PHP数组函数 array_merge_recursive (递归地合并一个或多个数组)

    在PHP中,数组函数 array_merge_recursive () 用于递归地把一个或多个数组合并为一个数组。

    函数语法:

array_merge_recursive (array1,array2,array3...) : array

    函数参数说明:

参数描述
array1必需。规定数组。
array2可选。规定数组。
array3可选。规定数组。

    array_merge_recursive() 函数用于递归地把一个或多个数组合并为一个数组,并返回结果数组。

    注意:

        1. 如果输入的数组中有相同的字符串键名,后一个值将不会覆盖原来的值,而是将多个相同键名的值递归组成一个数组。

        2. 如果数组具有相同的数值键名,后一个值将不会覆盖原来的值,而是附加到后面。

    举例1,递归合并数组   

<?php

// 定义数组
$arr1 = [1, 2, 3];
$arr2 = ['a', 'b', 'c'];

// 递归合并数组
$res = array_merge_recursive($arr1, $arr2);
var_dump($res);

    以上代码输出如下(键名以 0 开始重新索引):

array (size=6)
  0 => int 1
  1 => int 2
  2 => int 3
  3 => string 'a' (length=1)
  4 => string 'b' (length=1)
  5 => string 'c' (length=1)

    举例2,有相同字符串键名数组合并   

<?php

// 定义数组
$arr1 = [1 => 1, 'b' => 2, 'c' => 3];
$arr2 = ['a' => 'a', 'b' => 'b', 'c' => 'c'];

// 递归合并数组
$res = array_merge_recursive($arr1, $arr2);
var_dump($res);

    以上代码输出如下(后面数组元素值和前面同key元素的值合并成一个数组):

array (size=4)
  0 => int 1
  'b' => 
    array (size=2)
      0 => int 2
      1 => string 'b' (length=1)
  'c' => 
    array (size=2)
      0 => int 3
      1 => string 'c' (length=1)
  'a' => string 'a' (length=1)

   举例3,有相同数字键名数组合并   

<?php

// 定义数组
$arr1 = [1 => 1, 2 => 2, 3 => 3];
$arr2 = [1 => 'a', 2 => 'b', 3 => 'c'];

// 递归合并数组
$res = array_merge_recursive($arr1, $arr2);
var_dump($res);

    以上代码输出如下(相同数字键名的元素不会覆盖):

array (size=6)
  0 => int 1
  1 => int 2
  2 => int 3
  3 => string 'a' (length=1)
  4 => string 'b' (length=1)
  5 => string 'c' (length=1)

欢迎分享交流,转载请注明出处:WithCoder » PHP数组函数 array_merge_recursive (递归地合并一个或多个数组)