首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP array_merge 與 + 運算子合併陣列差異詳解

     編輯:PHP 相關知識

核心差異速查

特性array_merge()+ 運算子
數字索引重新索引(0 起始連續)保留原索引,左邊優先
字串鍵名衝突右邊覆蓋左邊左邊優先,右邊忽略
多陣列合併支援任意個數僅兩個陣列
回傳值新陣列新陣列

三種情境實測

情境一:純數字索引

情境二:字串鍵名(關聯陣列)

a, 1=>b...
$b = ['a','x','y'];               // 實際為 0=>a, 1=>x, 2=>y

array_merge($a, $b); // [a,b,c,d,e,f,a,x,y] 數字索引重新編號,值重複保留
$a + $b;             // [a,b,c,d,e,f]       索引衝突,左邊優先
$b + $a;             // [a,x,y,d,e,f]       $b 索引 0-2,$a 索引 3-5

情境三:指定數字鍵名

'a', 2=>'b', 3=>'c', 4=>'d', 5=>'e', 6=>'f'];
$b = [1=>'a', 7=>'x', 8=>'y'];

array_merge($a, $b); // [0=>a,1=>b,2=>c,3=>d,4=>e,5=>f,6=>a,7=>x,8=>y] 數字鍵重新索引
$a + $b;             // [1=>a,2=>b,3=>c,4=>d,5=>e,6=>f,7=>x,8=>y]   鍵 1 衝突左邊優先
$b + $a;             // [1=>a,7=>x,8=>y,2=>b,3=>c,4=>d,5=>e,6=>f]   $b 鍵 1,7,8,$a 補 2-6

單一陣列傳入 array_merge 的行為

'a', 10=>'b'];
array_merge($a); // [0=>'a', 1=>'b'] 重新索引為 0 起始連續

選擇指南

  • 需保留關聯鍵名、右邊覆蓋左邊:用 array_merge(最常見,如配置合併)。
  • 需保留數字索引、左邊優先:用 +(如分頁資料合併、索引有業務含義)。
  • 合併 3+ 個陣列:只能用 array_merge($a, $b, $c...)。

結語

array_merge 適合關聯陣列合併(覆蓋語義),+ 適合索引陣列聯集(優先語義)。理解兩者在數字/字串鍵名上的根本差異,避免資料遺失或索引錯亂。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved