PHP array_merge_recursive 函数
一、函数功能:
递归地合并一个或多个数组。所有的数字键名会重新从0开始索引;遇到相同非数字键名时,相同键名的键值会放到一个子数组中。
该函数与array_merge()函数的区别在于:array_merge()函数相同非数字键名只会保留一个,最后键值会覆盖之前的键值。
二、函数语法:
三、函数参数:
四、返回值:
五、用法举例:
1、数字键名的索引数组合并:
数字键名的索引数组合并,键值会全部从0开始重新索引,所以即使相同的键名的键值也不会覆盖。
2、非数字键名的关联数组合并:
非数字键名的关联数组,相同键名的键值会放到一个子数组中。
递归地合并一个或多个数组。所有的数字键名会重新从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 ) )