PHP中合并兩個數組可以使用+或者array_merge,但這兩個還是有區別的,清楚的瞭解這兩中處理方法的區別對項目的快速開發來說還是非常有必要的。
主要區別是當兩個或者多個數組中如果出現相同鍵名,需要注意以下兩點:
首先需要說明一下php裡面數組按鍵名大約可以分為字串(關聯陣列)或者數字(數值數組),這裡就不討論多維陣列了。
(1)鍵名為數字(數值數組)時,array_merge()不會覆蓋掉原來的值,但+合并數組則會把最先出現的值作為最終結果返回,而把後面的數組擁有相同鍵名的那些值“拋棄”掉(不是覆蓋)。
(2)鍵名為字元(關聯陣列)時,+仍然把最先出現的值作為最終結果返回,把後面的數組擁有相同鍵名的那些值“拋棄”掉,但array_merge()此時會覆蓋掉前面相同鍵名的值。
下面通過幾個具體的例子進行說明:
m:Array (
[0] => a
[1] => b
)
n:Array (
[0] => c
[1] => d
)
m+n 結果為 : Array (
[0] => a
[1] => b
)
array_merge(m,n)結果為 : Array (
[0] => a
[1] => b
[2] => c
[3] => d
)
m:Array (
[1] => a
[2] => b
)
n:Array (
[2] => c
[3] => d
)
m+n結果為 : Array (
[1] => a
[2] => b
[3] => d
)
array_merge(m,n)結果為 : Array (
[0] => a
[1] => b
[2] => c
[3] => d
)
m:Array (
[a] => a
[b] => b
)
n:Array (
[b] => c
[d] => d
)
m+n結果為 : Array (
[a] => a
[b] => b
[d] => d
)
array_merge(m,n)結果為 : Array (
[a] => a
[b] => c
[d] => d
)
您可能感興趣的文章
- php在數組中尋找某個值是否存在(in_array(),array_search(),array_key_exists())
- PHP 產生連續的數字(字母)數組函數range()分析,PHP抽獎程式函數
- php中在變數和函數前加static關鍵字之後的區別
- PHP中跳出多重迴圈使用break,continue,goto,return,exit的用法和區別
- php字串替換函數str_replace速度比preg_replace快
- php擷取目錄所有檔案並將結果儲存到數組的程式
- 用PHP函數memory_get_usage擷取當前PHP記憶體消耗量以實現程式的效能最佳化
- 關於使用in_array() foreach array_search() 尋找數組是否包含時的效能對比
http://www.bkjia.com/PHPjc/764102.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/764102.htmlTechArticlePHP中合并兩個數組可以使用+或者array_merge,但這兩個還是有區別的,清楚的瞭解這兩中處理方法的區別對項目的快速開發來說還是非常有必...