PHP array_merge_recursive 函数

一、函数功能:
  递归地合并一个或多个数组。所有的数字键名会重新从0开始索引;遇到相同非数字键名时,相同键名的键值会放到一个子数组中。
  该函数与array_merge()函数的区别在于:array_merge()函数相同非数字键名只会保留一个,最后键值会覆盖之前的键值。
 
二、函数语法:
array array_merge_recursive ( $array1, $array2, [ $... ] )
 
三、函数参数:
参数名描述
$array1参与合并的第一个数组;
$array2参与合并的第二个数组;
...参与合并的其他数组。
 
四、返回值:
返回合并后的数组。
 
五、用法举例:
1、数字键名的索引数组合并:
  数字键名的索引数组合并,键值会全部从0开始重新索引,所以即使相同的键名的键值也不会覆盖。
<?php
$array1 = array('红', '绿');
$array2 = array('蓝', array('黑', '白'));
print_r(array_merge_recursive($array1, $array2));
echo PHP_EOL.PHP_EOL;
 
$array1 = array('1001'=>'aiezu.com', '1002'=>array('web', 'js'));
$array2 = array('1001'=>'爱E族');
$array3 = array('1002'=>'PHP');
print_r(array_merge($array1, $array2, $array3));
输出:
Array
(
    [0] => 红
    [1] => 绿
    [2] => 蓝
    [3] => Array
        (
            [0] => 黑
            [1] => 白
        )
)

Array
(
    [0] => aiezu.com
    [1] => Array
        (
            [0] => web
            [1] => js
        )
    [2] => 爱E族
    [3] => PHP
)

2、非数字键名的关联数组合并:
  非数字键名的关联数组,相同键名的键值会放到一个子数组中。
<?php
$array1 = array('a'=>array('aiezu.com'), 'b'=>'web');
$array2 = array('a'=>'爱E族', 'c'=>'php');
$array3 = array('c'=>'java');
print_r(array_merge_recursive($array1, $array2, $array3));
输出:
Array
(
    [a] => Array
        (
            [0] => aiezu.com
            [1] => 爱E族
        )
    [b] => web
    [c] => Array
        (
            [0] => php
            [1] => java
        )
)

0 个评论

要回复文章请先登录注册