昨天是數組合并,今天依舊是數組合并,今天是昨天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技術專欄