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

PHP array_merge() 合併關聯與非關聯陣列差異解析

     編輯:PHP 相關知識

array_merge() 將一或多個陣列合併為單一陣列,行為取決於鍵的類型:字串鍵(關聯)後者覆蓋前者,數字鍵(非關聯)重新索引並附加。

語法

array array_merge(array ...$arrays)

關聯陣列合併:後者覆蓋

<?php
$beginning = 'foo'; // 字串會被轉為 [0 => 'foo']
$end = [1 => 'bar'];
$result = array_merge((array)$beginning, (array)$end);
print_r($result);
// Array ( [0] => foo [1] => bar )
?>

數字鍵重新索引

$a = [10 => 'x', 20 => 'y'];
$b = [30 => 'z'];
print_r(array_merge($a, $b));
// Array ( [0] => x [1] => y [2] => z )  // 鍵重新從 0 開始

字串鍵覆蓋示範

$a = ['color' => 'red', 'size' => 'M'];
$b = ['color' => 'blue', 'shape' => 'circle'];
print_r(array_merge($a, $b));
// Array ( [color] => blue [size] => M [shape] => circle )

實務建議

  • 需保留數字鍵原值請用 + 運算子:$a + $b(前者優先,不重新索引)。
  • 多維陣列合併只處理第一層,子陣列不會遞迴合併(需自行實作或用 array_merge_recursive)。
  • PHP 7.4+ 可用展開運算子 [...$a, ...$b] 替代,語法更簡潔。

理解鍵類型對合併行為的影響,能避免資料不預期覆蓋或索引錯亂。

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