| 導購 | 订阅 | 在线投稿
分享
 
 
 

PHP合並數組array_merge函數運算符加號與的區別

來源:互聯網  2008-12-18 07:52:11  評論

「+」運算符和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 )

「+」運算符和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 )
󰈣󰈤
王朝萬家燈火計劃
期待原創作者加盟
 
 
 
>>返回首頁<<
 
 
 
 
 熱帖排行
 
 
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有