首頁 >後端開發 >php教程 >php合併陣列使用+運算子和陣列函數array_merge的區別實例詳解

php合併陣列使用+運算子和陣列函數array_merge的區別實例詳解

伊谢尔伦
伊谢尔伦原創
2017-06-21 09:52:531532瀏覽

PHP合併陣列一般有兩種做法,一種是直接使用加號相加,另一種則是使用array_merge函數進行相加,array_merge() 將兩個或多個陣列的單元合併起來,一個陣列中的值附加在前一個陣列的後面。傳回作為結果的陣列。 如果輸入的陣列中有相同的字串鍵名,則該鍵名後面的值將覆寫前一個值。然而,如果數組包含數字鍵名,後面的值將不會覆蓋原來的值,而是附加到後面。

兩者之間有點差別:

當陣列鍵名為數字鍵名稱時,要合併的兩個陣列中都有同名數字KEY的時候,使用array_merge()不會覆蓋原來的值,而使用“+”合併數組則會把最先出現的值作為最終結果返回,而把後面的數組擁有相同鍵名的那些值“拋棄」掉(注意:不是覆蓋而是保留最先出現的那個值)。當相同陣列鍵名為字元時,「+」運算子與鍵名為數字時一樣,但array_merge()此時會覆寫前面相同鍵名的值。

實例:

<?php
$array1 = array(1=>&#39;0&#39;); 
$array2 = array(1=> "data"); 
$result1 = $array2 + $array1;/*结果为$array2的值*/ 
print_r($result); 
$result = $array1 + $array2 ;/*结果为$array1的值*/ 
print_r($result); 
$result3 = array_merge($array2,$array1);/*结果为$array2和$array1的值,键名被重新分配*/ 
print_r($result3); 
$result4 = array_merge($array1,$array2);/*结果为$array1和$array2的值,键名被重新分配*/ 
print_r($result4); 
?>

#輸出結果:

Array 
( 
[1] => data 
) 
Array 
( 
[1] => 0 
) 
Array 
( 
[0] => data 
[1] => 0 
) 
Array 
( 
[0] => 0 
[1] => data 
)

程式碼:

<?php
$array1 = array(&#39;asd&#39;=>&#39;0&#39;); 
$array2 = array(&#39;asd&#39; => "data"); 
$result1 = $array2 + $array1;/*结果为$array2的值*/ 
print_r($result); 
$result = $array1 + $array2 ;/*结果为$array1的值*/ 
print_r($result); 
$result3 = array_merge($array2,$array1);/*结果为$array1*/ 
print_r($result3); 
$result4 = array_merge($array1,$array2);/*结果为$array2*/ 
print_r($result4);
?>

輸出結果:

Array 
( 
[asd] => data 
) 
Array 
( 
[asd] => 0 
) 
Array 
( 
[asd] => 0 
) 
Array 
( 
[asd] => data 
)

1.相加會證數組中的自然index不被重置
2.相加方法中,被加的數組內的值不會被覆蓋
3. merge函數中的自然index會被重置
4.merge函數,無所謂被merge和merge關係,越後面的array參數,其值,會覆蓋較前面的array參數相同鍵的值

以上是php合併陣列使用+運算子和陣列函數array_merge的區別實例詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn