一、函数功能:
递归地合并一个或多个数组。所有的数字键名会重新从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
)
)