工作项目的代码中出现了关于PHP的array_merge_recursive()方法的使用,由于之前自己只是学习和应用过更为常见的PHP的array_merge()内置方法,对array_merge_recursive()并没有怎么学习了解过,因此想借现在项目中有看到这个方法的机缘,对此方法做一下学习记录。
参考了PHP官方网站对此方法的说明定义,
官网链接:PHP: array_merge_recursive - Manual
如下:
array_merge_recursive — 递归地合并一个或多个数组
array_merge_recursive() 将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。
如果输入的数组中有相同的字符串键名,则这些值会被合并到一个数组中去,这将递归下去,因此如果一个值本身是一个数组,本函数将按照相应的条目把它合并为另一个数组。需要注意的是,如果数组具有相同的数值键名,后一个值将不会覆盖原来的值,而是附加到后面。
示例如下:
<?php
$ar1 = array(
"color" => array(
"favorite" => "red"
),
5
);
$ar2 = array(
10,
"color" => array(
"favorite" => "green",
"blue"
)
);
$result = array_merge_recursive($ar1, $ar2);
print_r($result);
?>
结果为:
Array
(
[color] => Array
(
[favorite] => Array
(
[0] => red
[1] => green
)
[0] => blue
)
[0] => 5
[1] => 10
)