昨天是数组合并,今天依旧是数组合并,今天是昨天array_merge的延伸,昨天的如果遇到相同的数据,则出现覆盖情况
本次将的是array_merge_recursive不会覆盖,会形成新的数组。
看语法
$newarray = array_merge_recursive($array1,$array2.....);
英文merge 合并的意思,recursive是递归的意思
特殊的情况与array_merge不同之处说明一下
1.不会覆盖相同的内容,相同的内容会以相同的key存储为数组
2.会递归深层次的数组,在以往的函数中不会递归,该函数是递归的
看例子学习php数组相同数据合并array_merge_recursive
例子1:有索引的数组的合并
<?php
$array = array("forasp"=>".cn","key"=>"1","temp"=>2);
$array1 = array("forasp"=>"www.anypoetry.com","key"=>1,"temp"=>3);
$forasp = array_merge_recursive($array,$array1);
print_r($forasp);
?>
结果
Array
(
[forasp] => Array
(
[0] => .cn
[1] => www.anypoetry.com
)
[key] => Array
(
[0] => 1
[1] => 1
)
[temp] => Array
(
[0] => 2
[1] => 3
)
)
?>
这里注意一点,进行相同key的合并,可以看出来相同key以及内容形成了数组
例子2 无索引数组与有索引数组
<?php
$array= array("site","域名","www.anypoetry.com");
$array1 = array("forasp"=>"www.anypoetry.com","key"=>1,"temp"=>3);
$forasp = array_merge_recursive($array,$array1);
print_r($forasp);
?>
输出结果:
Array
(
[0] => site
[1] => 域名
[2] => www.anypoetry.com
[forasp] => www.anypoetry.com
[key] => 1
[temp] => 3
)
无索引的,看来数组合并array_merge_recursive进行比较了key
例子3 当有一维数组
<?php
$array1= array("site","域名","anypoetry.com");
$array2=array("site","anypoetry.com");
$forasp = array_merge_recursive($array1,$array2);
print_r($forasp);
?>
输出结果
Array
(
[0] => site
[1] => 域名
[2] => anypoetry.com
[3] => site
[4] => anypoetry.com
)
看来 array_merge_recursive是针对于有索引数组的,如果无索引同样的value不能形成数组
更多信息请查看IT技术专栏