PHP函數array_merge()與加號運算符的不同之處
我們今天為大家介紹的是PHP函數array_merge(),它和“+”運算符的功能一樣,都能夠將多個數組進行合并。不過,在實際使用過程中,PHP函數array_merge()還是與“+”運算符有些許不同之處。
#t#array_merge在參考手冊中的說明如下:
PHP函數array_merge()將兩個或多個數組的單元合并起來,一個數組中的值附加在前一個數組的后面。返回作為結果的數組。
如果輸入的數組中有相同的字符串鍵名,則該鍵名后面的值將覆蓋前一個值。然而,如果數組包含數字鍵名,后面的值將不會覆蓋原來的值,而是附加到后面。
PHP函數array_merge()與加號運算符兩個的區別是:
1.數組鍵名為數字鍵名時,要合并的兩個數組中有同名數字KEY的時候,使用array_merge()不會覆蓋掉原來的值,而使用“+”合并數組則會 把最先出現的值作為最終結果返回,而把后面的數組擁有相同鍵名的那些值“拋棄”掉(注意:不是覆蓋而是保留最先出現的那個值)。例子:
- $arrayarray1 = array(1=>'0');
- $arrayarray2 = 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.當相同數組鍵名為字符時,“+”運算符與鍵名為數字時一樣,但PHP函數array_merge()此時會覆蓋掉前面相同鍵名的值。
例子:
- $arrayarray1 = array('asd'=>'0');
- $arrayarray2 = 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()與加號運算符在實際使用中的不同之處。