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

PHP array_merge() 函數完整指南:合併陣列的核心技巧與進階用法

     編輯:PHP 相關知識

array_merge() 基礎語法與行為

array_merge() 是 PHP 中合併多個陣列的核心函數,它會將兩個或多個陣列合併為一個新陣列。理解其鍵值處理機制至關重要:

  • 字串鍵名重複:後方陣列的值會覆蓋前方陣列的值
  • 數字索引鍵名:會重新從 0 開始連續索引,不會覆蓋
  • 單一數字索引陣列輸入:會重新索引鍵名從 0 開始

基本使用範例

<?php
$a = array(3 => "Horse", 4 => "Dog");
print_r(array_merge($a));
// 輸出:Array ( [0] => Horse [1] => Dog )
?>

多個陣列合併實戰

<?php
$face = array("J", "Q", "K", "A");
$numbered = array("2", "3", "4", "5", "6", "7", "8", "9");
$cards = array_merge($face, $numbered);
shuffle($cards);
print_r($cards);
// 輸出範例:Array ( [0] => A [1] => 4 [2] => 9 ... )
?>

進階:array_merge_recursive() 遞歸合併

當鍵名衝突時,array_merge_recursive() 不會覆蓋,而是將值合併為新陣列:

<?php
$array1 = array("AA"=>"A", "BB"=>"B");
$array2 = array("AA"=>"1", "BB"=>"2");
$array3 = array("AA"=>"!", "BB"=>"@");
$arrayX = array_merge_recursive($array1, $array2, $array3);
print_r($arrayX);
/* 輸出:
Array (
    [AA] => Array ( [0] => A [1] => 1 [2] => ! )
    [BB] => Array ( [0] => B [1] => 2 [2] => @ )
)
*/
?>

常見誤區:array_combine() vs array_merge()

注意區分:array_combine() 是用一個陣列作為鍵、另一個作為值來建立新陣列,兩者長度必須相同且不能為空,這與合併陣列完全不同。

效能與最佳實踐

  • 大量數據合併時,考慮使用 + 運算子(保留鍵名不重新索引)
  • 需要去重時搭配 array_unique() 使用
  • 多維陣列合併時注意遞歸深度對效能的影響
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved