在 PHP 中,array_merge 函數是一個極為常見和實用的函數,用於將一個或多個數組合併成一個數組。
一、基本使用
array_merge 函數的基本使用如下:
$array1 = array('key1' => 'value1', 'key2' => 'value2'); $array2 = array('key3' => 'value3', 'key4' => 'value4'); $result = array_merge($array1, $array2); print_r($result);
執行結果如下:
Array ( [key1] => value1 [key2] => value2 [key3] => value3 [key4] => value4 )
可以看到,$array1 和 $array2 合併後得到了一個新的數組 $result。
二、參數類型
array_merge 函數支持任意數量的參數,可以是一個或多個數組,也可以是非數組參數。如果參數列表中包含非數組參數,則這些參數將被轉換為數組後進行合併。
例如:
$array1 = array('key1' => 'value1', 'key2' => 'value2'); $result = array_merge($array1, 'value3', 'value4'); print_r($result);
執行結果如下:
Array ( [key1] => value1 [key2] => value2 [0] => value3 [1] => value4 )
可以看到,’value3′ 和 ‘value4’ 被轉換為索引數組後和 $array1 合併成了一個新的數組。
三、鍵名重複
如果合併的數組中存在相同的鍵名,array_merge 函數會以最後一個出現的值為準,覆蓋之前的值。
例如:
$array1 = array('key1' => 'value1', 'key2' => 'value2'); $array2 = array('key2' => 'value3', 'key3' => 'value4'); $result = array_merge($array1, $array2); print_r($result);
執行結果如下:
Array ( [key1] => value1 [key2] => value3 [key3] => value4 )
可以看到,$array1 和 $array2 合併後,$array2 中的 ‘key2’ => ‘value3’ 覆蓋了 $array1 中的 ‘key2’ => ‘value2’。
四、相同鍵名的數組
如果合併的數組中存在相同鍵名的數組,其合併方式會有所不同。
例如:
$array1 = array('key1' => 'value1', 'key2' => array('value2', 'value3')); $array2 = array('key2' => array('value4', 'value5'), 'key3' => 'value6'); $result = array_merge($array1, $array2); print_r($result);
執行結果如下:
Array ( [key1] => value1 [key2] => Array ( [0] => value4 [1] => value5 ) [key3] => value6 )
可以看到,$array1 和 $array2 合併後,$array2 中的 ‘key2’ => array(‘value4’, ‘value5’) 覆蓋了 $array1 中的 ‘key2’ => array(‘value2’, ‘value3’),而不是將其合併為一個數組。
五、多維數組的合併
array_merge 函數同樣支持多維數組的合併,其合併方式和相同鍵名的數組相似。
例如:
$array1 = array('key1' => 'value1', 'key2' => array('key3' => 'value2', 'key4' => 'value3')); $array2 = array('key2' => array('key4' => 'value4', 'key5' => 'value5'), 'key3' => 'value6'); $result = array_merge($array1, $array2); print_r($result);
執行結果如下:
Array ( [key1] => value1 [key2] => Array ( [key3] => value2 [key4] => value4 [key5] => value5 ) [key3] => value6 )
可以看到,$array1 和 $array2 合併後,$array2 中的 ‘key2’ => array(‘key4’ => ‘value4’, ‘key5’ => ‘value5’) 覆蓋了 $array1 中的 ‘key2’ => array(‘key3’ => ‘value2’, ‘key4’ => ‘value3’),而不是將其合併為一個數組。
六、總結
array_merge 函數是 PHP 中一個非常實用和常見的函數,可以用於將一個或多個數組合併成一個數組,並且支持多維數組的合併。但需要注意的是,合併的數組中存在相同的鍵名時,以最後一個出現的值為準,覆蓋之前的值。
原創文章,作者:SEZM,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/139156.html