php合并數(shù)組array_merge函數(shù)運(yùn)算符加號與的區(qū)別
更新時(shí)間:2008年10月31日 22:21:34 作者:
“+”運(yùn)算符和array_merge():array array_merge ( array array1, array array2 [, array ...] )
都可以合并多個(gè)數(shù)組,但使用過程中有一點(diǎn)小區(qū)別。
array_merge在參考手冊中的說明如下:
array_merge() 將兩個(gè)或多個(gè)數(shù)組的單元合并起來,一個(gè)數(shù)組中的值附加在前一個(gè)數(shù)組的后面。返回作為結(jié)果的數(shù)組。
如果輸入的數(shù)組中有相同的字符串鍵名,則該鍵名后面的值將覆蓋前一個(gè)值。然而,如果數(shù)組包含數(shù)字鍵名,后面的值將不會覆蓋原來的值,而是附加到后面。
兩個(gè)的區(qū)別是:
1.數(shù)組鍵名為數(shù)字鍵名時(shí),要合并的兩個(gè)數(shù)組中有同名數(shù)字KEY的時(shí)候,使用array_merge()不會覆蓋掉原來的值,而使用“+”合并數(shù)組則會把最先出現(xiàn)的值作為最終結(jié)果返回,而把后面的數(shù)組擁有相同鍵名的那些值“拋棄”掉(注意:不是覆蓋而是保留最先出現(xiàn)的那個(gè)值)。例子:
$array1 = array(1=>'0');
$array2 = 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í)一樣,但array_merge()此時(shí)會覆蓋掉前面相同鍵名的值。
例子:
$array1 = array('asd'=>'0');
$array2 = 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
)
array_merge() 將兩個(gè)或多個(gè)數(shù)組的單元合并起來,一個(gè)數(shù)組中的值附加在前一個(gè)數(shù)組的后面。返回作為結(jié)果的數(shù)組。
如果輸入的數(shù)組中有相同的字符串鍵名,則該鍵名后面的值將覆蓋前一個(gè)值。然而,如果數(shù)組包含數(shù)字鍵名,后面的值將不會覆蓋原來的值,而是附加到后面。
兩個(gè)的區(qū)別是:
1.數(shù)組鍵名為數(shù)字鍵名時(shí),要合并的兩個(gè)數(shù)組中有同名數(shù)字KEY的時(shí)候,使用array_merge()不會覆蓋掉原來的值,而使用“+”合并數(shù)組則會把最先出現(xiàn)的值作為最終結(jié)果返回,而把后面的數(shù)組擁有相同鍵名的那些值“拋棄”掉(注意:不是覆蓋而是保留最先出現(xiàn)的那個(gè)值)。例子:
復(fù)制代碼 代碼如下:
$array1 = array(1=>'0');
$array2 = 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é)果為:
復(fù)制代碼 代碼如下:
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í)一樣,但array_merge()此時(shí)會覆蓋掉前面相同鍵名的值。
例子:
復(fù)制代碼 代碼如下:
$array1 = array('asd'=>'0');
$array2 = 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é)果為:
復(fù)制代碼 代碼如下:
Array
(
[asd] => data
)
Array
(
[asd] => 0
)
Array
(
[asd] => 0
)
Array
(
[asd] => data
)
您可能感興趣的文章:
- PHP中數(shù)組合并的兩種方法及區(qū)別介紹
- php下將多個(gè)數(shù)組合并成一個(gè)數(shù)組的方法與實(shí)例代碼
- php 數(shù)組的合并、拆分、區(qū)別取值函數(shù)集
- php二維數(shù)組合并及去重復(fù)的方法
- php數(shù)組實(shí)現(xiàn)根據(jù)某個(gè)鍵值將相同鍵值合并生成新二維數(shù)組的方法
- PHP合并兩個(gè)或多個(gè)數(shù)組的方法
- php 操作數(shù)組(合并,拆分,追加,查找,刪除等)
- php通過array_merge()函數(shù)合并兩個(gè)數(shù)組的方法
- php數(shù)組合并array_merge()函數(shù)使用注意事項(xiàng)
- php合并數(shù)組并保留鍵值的實(shí)現(xiàn)方法
- PHP實(shí)現(xiàn)數(shù)組根據(jù)某個(gè)字段進(jìn)行水平合并,橫向合并案例分析
相關(guān)文章
深思 PHP 數(shù)組遍歷的差異(array_diff 的實(shí)現(xiàn))
深思 PHP 數(shù)組遍歷的差異(array_diff 的實(shí)現(xiàn))...2006-06-06PHP Imagick完美實(shí)現(xiàn)圖片裁切、生成縮略圖、添加水印
這篇文章主要介紹了PHP Imagick完美實(shí)現(xiàn)圖片裁切、生成縮略圖、添加水印的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-02-02php針對cookie操作的隊(duì)列操作類實(shí)例
這篇文章主要介紹了php針對cookie操作的隊(duì)列操作類,以實(shí)例形式分析了設(shè)置cookie的常見方法,以及隊(duì)列操作cookie的方法,最后給出了針對常見問題的總結(jié),需要的朋友可以參考下2014-12-12PHP實(shí)現(xiàn)函數(shù)內(nèi)修改外部變量值的方法示例
這篇文章主要介紹了PHP實(shí)現(xiàn)函數(shù)內(nèi)修改外部變量值的方法,涉及php全局變量、傳值調(diào)用、引用等相關(guān)操作技巧,需要的朋友可以參考下2018-12-12PHP常量使用的幾個(gè)需要注意的地方(謹(jǐn)慎使用PHP中的常量)
常量包含數(shù)字字母字符和下劃線,數(shù)字允許作為常量名。 常量名的所有字母必須大寫。類常量必須通過 const 定義為類的成員,強(qiáng)烈不鼓勵使用 define 定義的全局常量2014-09-09php實(shí)現(xiàn)約瑟夫問題的方法小結(jié)
這篇文章主要介紹了php實(shí)現(xiàn)約瑟夫問題的方法,實(shí)例總結(jié)了兩種常見的實(shí)現(xiàn)約瑟夫問題的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03php代碼中使用換行及(\n或\r\n和br)的應(yīng)用
瀏覽器識別不了\n或\r\n,這兩個(gè)換行符是文本換行符,文本文件有效;如果需要將結(jié)果輸出到瀏覽器或打印到顯示器,代碼中使用br;如果只是在源代碼中換行,則使用\n或\r\n,感興趣的朋友可以了解下,或許對你學(xué)習(xí)php有所幫助2013-02-02