PHP合并數(shù)組
1.合并數(shù)組
??????1.arrary_merge
示例代碼:
$arr1 = array(1, 2, 3, 4, 5);
$arr2 = array(1, 2, 6, 7, 8, 9, 10);
$result1 = array_merge($arr1, $arr2);
$arr3 = array("name" => "itbsl", "age" => 13, "sex" => "Male");
$arr4 = array("name" => "火龍果", "age" => 13, "sex" => "Male");
$result2 = array_merge($arr3, $arr4);
echo "<pre>";
var_dump($result1);
var_dump($result2);
運(yùn)行上面的代碼,輸出結(jié)果如下圖所示:
普通數(shù)組合并時(shí),會(huì)把第二個(gè)數(shù)組放到第一個(gè)數(shù)組后面,拼接后返回诅挑。
但是對(duì)于鍵值對(duì)的數(shù)組來(lái)說(shuō),如果有相同的鍵泛源,那么第二個(gè)數(shù)組會(huì)覆蓋第一個(gè)數(shù)組相同的鍵所對(duì)應(yīng)的值拔妥。
??????2.通過(guò)+
合并
示例代碼:
$arr1 = array(1, 2, 3, 4, 5);
$arr2 = array(1, 2, 6, 7, 8, 9, 10);
$result1 = $arr1 + $arr2;
$arr3 = array("name" => "itbsl", "age" => 13, "sex" => "Male");
$arr4 = array("name" => "火龍果", "age" => 13, "sex" => "Male", "id" => "411521");
$result2 = $arr3 + $arr4;
echo "<pre>";
var_dump($result1);
var_dump($result2);
運(yùn)行上面的代碼,輸出結(jié)果如下圖所示:
可以看到达箍,對(duì)于用"+"來(lái)合并兩個(gè)數(shù)組而言没龙,無(wú)論是普通數(shù)組還是鍵值對(duì)型數(shù)組,只要下標(biāo)相同或者鍵相同,都是前者覆蓋后者兜畸。這一點(diǎn)需要注意努释。
2.連接兩個(gè)數(shù)組
array_combine()
函數(shù)會(huì)得到一個(gè)新數(shù)組碘梢,它由一組提交的鍵和對(duì)應(yīng)的值組成咬摇。
示例代碼:
$arr1 = array("A","B","C","D");
$arr2 = array("paul","itbsl","Golang","PHP");
$result = array_combine($arr1,$arr2);
echo '<pre>';
var_dump($result);
運(yùn)行上面的代碼,輸出結(jié)果如下圖所示:
注意:如果需要合并數(shù)組成為上面的形式煞躬,那么合并的兩個(gè)數(shù)組的長(zhǎng)度必須相等肛鹏,也就是count($arr1) == count($arr2),并且不能為空
3.遞歸追加數(shù)組
array_merge_recursive()
函數(shù)與array_merge()
相同,可以將兩個(gè)或多個(gè)數(shù)組合并在一起恩沛,形成一個(gè)聯(lián)合的數(shù)組.兩者之間的區(qū)別在于在扰,當(dāng)某個(gè)輸入數(shù)組中的某個(gè)鍵己經(jīng)存在于結(jié)果數(shù)組中時(shí)該函數(shù)會(huì)采取不同的處理方式.array_merge()
會(huì)覆蓋前面存在的鍵/值對(duì),替換為當(dāng)前輸入數(shù)組中的鍵/值對(duì)雷客,而array_merge_recursive()
將把兩個(gè)值合并在一起芒珠,形成一個(gè)新的數(shù)組,并以原有的鍵作為數(shù)組名搅裙。
示例代碼:
$arr3 = array("name" => "itbsl", "age" => 13, "sex" => "Male");
$arr4 = array("name" => "火龍果", "age" => 13, "sex" => "Male");
$result2 = array_merge_recursive($arr3, $arr4);
echo "<pre>";
var_dump($result2);
運(yùn)行上面的代碼皱卓,輸出結(jié)果如下圖所示: