標籤:輸入 style 數組 函數 php 函數 nbsp php 指定 覆蓋
array_merge()是PHP語言中的一個函數,作用是將兩個或多個數組的單元合并起來,一個數組中的值附加在前一個數組的後面。返回作為結果的數組。
如果輸入的數組中有相同的字串鍵名,該鍵的索引值為最後一個鍵名對應的值(後面的值覆蓋前面相同的值)。
如果數組是數字鍵名的,則鍵名會以連續方式重新索引,即後面的值將不會覆蓋原來的值,而是附加到後面。
注釋:如果僅僅向 array_merge() 函數輸入了一個數組,且鍵名是整數,則該函數將返回帶有整數鍵名的新數組,其鍵名以 0 開始進行重新索引。(參見例子 2)
注意:當後面數組元素中鍵名與其前面數組元素鍵名相同時,則結果數組中相應鍵名的索引值則被後者覆蓋,即為後者索引值。(參見例子3)
文法
| array_merge(array1[,array2[,array3...]]) |
| 參數 |
描述 |
| array1 |
必需。輸入的第一個數組。 |
| array2 |
必需。輸入的第二個數組。 |
| array3 |
可選。可指定的多個輸入數組。 |
例子1:
<?php $a1=array("a"=>"Horse","b"=>"Dog"); $a2=array("c"=>"Cow","b"=>"Cat"); print_r(array_merge($a1,$a2)); ?>
輸出:
Array ( [a] => Horse [b] => Cat [c] => Cow )
例子2:
僅使用一個數組參數:
$a=array(3=>"Horse",4=>"Dog"); print_r(array_merge($a)); 輸出:Array ( [0] => Horse [1] => Dog )
例子3:
$a1=array("a"=>"Horse","b"=>"Dog"); $a2=array("a"=>"Cow","b"=>"Cat"); print_r(array_merge($a1,$a2)); 輸出:Array ( [a] => Cow [b] => Cat )
“+”運算子和array_merge():array array_merge ( array array1, array array2 [, array ...] ) 都可以合并多個數組,但使用過程中有一點小區別。
array_merge在參考手冊中的說明如下:
array_merge()將兩個或多個數組的單元合并起來,一個數組中的值附加在前一個數組的後面。返回作為結果的數組。
如果輸入的數組中有相同的字串鍵名,則該鍵名後面的值將覆蓋前一個值。然而,如果數組包含數字鍵名,後面的值將不會覆蓋原來的值,而是附加到後面。
兩個的區別是:
1.數組鍵名為數字鍵名時,要合并的兩個數組中有同名數字KEY的時候,使用array_merge()不會覆蓋掉原來的值,而使用“+”合并數組則會把最先出現的值作為最終結果返回,而把後面的數組擁有相同鍵名的那些值“拋棄”掉(注意:不是覆蓋而是保留最先出現的那個值)。
例子:
$array1 = array(1=>‘0‘); $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)
2.當相同數組鍵名為字元時,“+”運算子與鍵名為數字時一樣,但array_merge()此時會覆蓋掉前面相同鍵名的值。
例子:
$array1 = array(‘asd‘=>‘0‘); $array2 = array(‘asd‘ => "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 )
php 函數合并 array_merge 與 + 的區別