array_merge() 是 PHP 中合併多個陣列的核心函數,它會將兩個或多個陣列合併為一個新陣列。理解其鍵值處理機制至關重要:
<?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() 不會覆蓋,而是將值合併為新陣列:
<?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() 是用一個陣列作為鍵、另一個作為值來建立新陣列,兩者長度必須相同且不能為空,這與合併陣列完全不同。
+ 運算子(保留鍵名不重新索引)array_unique() 使用