昨天是数组合并,今天依旧是数组合并,今天是昨天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技术专栏