程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP合並數組+與array_merge的區別

PHP合並數組+與array_merge的區別

編輯:關於PHP編程

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() 查找數組是否包含時的性能對比

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved