PHP函數(shù)array_merge()與加號(hào)運(yùn)算符的不同之處
我們今天為大家介紹的是PHP函數(shù)array_merge(),它和“+”運(yùn)算符的功能一樣,都能夠?qū)⒍鄠€(gè)數(shù)組進(jìn)行合并。不過(guò),在實(shí)際使用過(guò)程中,PHP函數(shù)array_merge()還是與“+”運(yùn)算符有些許不同之處。
#t#array_merge在參考手冊(cè)中的說(shuō)明如下:
PHP函數(shù)array_merge()將兩個(gè)或多個(gè)數(shù)組的單元合并起來(lái),一個(gè)數(shù)組中的值附加在前一個(gè)數(shù)組的后面。返回作為結(jié)果的數(shù)組。
如果輸入的數(shù)組中有相同的字符串鍵名,則該鍵名后面的值將覆蓋前一個(gè)值。然而,如果數(shù)組包含數(shù)字鍵名,后面的值將不會(huì)覆蓋原來(lái)的值,而是附加到后面。
PHP函數(shù)array_merge()與加號(hào)運(yùn)算符兩個(gè)的區(qū)別是:
1.數(shù)組鍵名為數(shù)字鍵名時(shí),要合并的兩個(gè)數(shù)組中有同名數(shù)字KEY的時(shí)候,使用array_merge()不會(huì)覆蓋掉原來(lái)的值,而使用“+”合并數(shù)組則會(huì) 把最先出現(xiàn)的值作為最終結(jié)果返回,而把后面的數(shù)組擁有相同鍵名的那些值“拋棄”掉(注意:不是覆蓋而是保留最先出現(xiàn)的那個(gè)值)。例子:
- $arrayarray1 = array(1=>'0');
 - $arrayarray2 = array(1=> "data");
 - $result1 = $array2 + $array1;/*結(jié)果為$array2的值*/
 - print_r($result);
 - $result = $array1 + $array2 ;/*結(jié)果為$array1的值*/
 - print_r($result);
 - $result3 = array_merge($array2,$array1);/*結(jié)果為$array2和$array1的值,鍵名被重新分配*/
 - print_r($result3);
 - $result4 = array_merge($array1,$array2);/*結(jié)果為$array1和$array2的值,鍵名被重新分配*/
 - print_r($result4);
 
輸出結(jié)果為:
- Array ( [1] => data )
 - Array ( [1] => 0 )
 - Array (
 - [0] => data
 - [1] => 0
 - )
 - Array
 - (
 - [0] => 0
 - [1] => data
 - )
 
2.當(dāng)相同數(shù)組鍵名為字符時(shí),“+”運(yùn)算符與鍵名為數(shù)字時(shí)一樣,但PHP函數(shù)array_merge()此時(shí)會(huì)覆蓋掉前面相同鍵名的值。
例子:
- $arrayarray1 = array('asd'=>'0');
 - $arrayarray2 = array('asd' => "data");
 - $result1 = $array2 + $array1;/*結(jié)果為$array2的值*/
 - print_r($result);
 - $result = $array1 + $array2 ;/*結(jié)果為$array1的值*/
 - print_r($result);
 - $result3 = array_merge($array2,$array1);/*結(jié)果為$array1*/
 - print_r($result3);
 - $result4 = array_merge($array1,$array2);/*結(jié)果為$array2*/
 - print_r($result4);
 
輸出結(jié)果為:
- Array ( [asd] => data )
 - Array ( [asd] => 0 )
 - Array ( [asd] => 0 )
 - Array ( [asd] => data )
 
以上就是PHP函數(shù)array_merge()與加號(hào)運(yùn)算符在實(shí)際使用中的不同之處。















 
 
 


 
 
 
 