昨天是數(shù)組合并,今天依舊是數(shù)組合并,今天是昨天array_merge的延伸,昨天的如果遇到相同的數(shù)據(jù),則出現(xiàn)覆蓋情況
本次將的是array_merge_recursive不會(huì)覆蓋,會(huì)形成新的數(shù)組。
看語法
$newarray = array_merge_recursive($array1,$array2.....);
英文merge 合并的意思,recursive是遞歸的意思
特殊的情況與array_merge不同之處說明一下
1.不會(huì)覆蓋相同的內(nèi)容,相同的內(nèi)容會(huì)以相同的key存儲(chǔ)為數(shù)組
2.會(huì)遞歸深層次的數(shù)組,在以往的函數(shù)中不會(huì)遞歸,該函數(shù)是遞歸的
看例子學(xué)習(xí)php數(shù)組相同數(shù)據(jù)合并array_merge_recursive
例子1:有索引的數(shù)組的合并
<?php
$array = array("forasp"=>".cn","key"=>"1","temp"=>2);
$array1 = array("forasp"=>"www.forasp.cn","key"=>1,"temp"=>3);
$forasp = array_merge_recursive($array,$array1);
print_r($forasp);
?>
結(jié)果
Array
(
[forasp] => Array
(
[0] => .cn
[1] => www.forasp.cn
)
[key] => Array
(
[0] => 1
[1] => 1
)
[temp] => Array
(
[0] => 2
[1] => 3
)
)
?>
這里注意一點(diǎn),進(jìn)行相同key的合并,可以看出來相同key以及內(nèi)容形成了數(shù)組
例子2 無索引數(shù)組與有索引數(shù)組
<?php
$array= array("site","域名","www.forasp.cn");
$array1 = array("forasp"=>"www.forasp.cn","key"=>1,"temp"=>3);
$forasp = array_merge_recursive($array,$array1);
print_r($forasp);
?>
輸出結(jié)果:
Array
(
[0] => site
[1] => 域名
[2] => www.forasp.cn
[forasp] => www.forasp.cn
[key] => 1
[temp] => 3
)
無索引的,看來數(shù)組合并array_merge_recursive進(jìn)行比較了key
例子3 當(dāng)有一維數(shù)組
<?php
$array1= array("site","域名","forasp.cn");
$array2=array("site","forasp.cn");
$forasp = array_merge_recursive($array1,$array2);
print_r($forasp);
?>
輸出結(jié)果
Array
(
[0] => site
[1] => 域名
[2] => forasp.cn
[3] => site
[4] => forasp.cn
)
看來 array_merge_recursive是針對(duì)于有索引數(shù)組的,如果無索引同樣的value不能形成數(shù)組
更多信息請(qǐng)查看IT技術(shù)專欄