PHP 新手教學 Array | array_merge的使用說明

Table of Contents

Table of Contents

array_combine

將矩陣合併時,常常會想到以下這兩種方法。array_combine與array_merge。

了解這兩者的差別後,就可以依照需求使用適合的函數來達成目的。

簡單地說,區分如下。

  • array_chunk: 合併兩個矩陣,一個為合併矩陣的鍵,一個為合併矩陣的值。
  • array_merge: 串接合併多個矩陣。

本文說明 PHP array_merge使用說明與範例。

基本語法

array_merge ( array $array1 [, array $... ] ) : array

將多個矩陣合併成新的矩陣,合併順序依照設定的引數順序銜接合併,最後將合併的矩陣返回。

注意:若是合併的矩陣中有相同的字串鍵名時,則該鍵名對應的值會被後面矩陣的值覆蓋。 然而若鍵名是數字時則不會被後面的矩陣覆蓋,而是直接銜接下去,但數字鍵名會被重新排列。


Example 1

有兩個矩陣分別含有學生A的個人資料,製作一個新矩陣,裡面包含學生A的所有個人資料。 

$studentA1 = array("name" => "A", "age" => 18);
$studentA2 = array("birthday" => "2002-01-01", "gender" => "male");
$studentA = array_merge($array1, $array2)
print_r($studentA);

Output:

Array
(
    [name] => A
    [age] => 18
    [birthday] => 2002-01-01
    [gender] => male
)


Example 2

接著,Example1的例子,突然有一個學生A的新資料矩陣["class" => "2-B", "number" => "0010", "age" => 19],年齡變更為19,若將此矩陣合併後會有什麼結果?


$studentA1 = array("name" => "A", "age" => 18);
$studentA2 = array("birthday" => "2002-01-01", "gender" => "male");

$studentA = array_merge($studentA1, $studentA2);
$studentA3 = array("class" => "2-B", "number" => "0010", "age" => 19);

$studentA = array_merge($studentA, $studentA3);
print_r($studentA);

Output:

Array
(
    [name] => A
    [age] => 19
    [birthday] => 2002-01-01
    [gender] => male
    [class] => 2-B
    [number] => 0010
)

新的資料被追加,年齡資料被覆蓋成為19。

Example 3

數字鍵值的矩陣合併。 使用array_merge合併後,數字鍵值將被重新排列。 若想保留原來的數字鍵名,可以使用 + 來合併矩陣。

以下示範了 array_merge+ 做矩陣合併時的差異。

$array1 = array(0 => 'zero', 10 => 'ten', 11 => 'eleven');
$array2 = array(1 => 'one', 2 => 'two', 100 => 'hundred');
print_r(array_merge($array1, $array2));
print_r($array1 + $array2);

Output:

Array
(
    [0] => zero
    [1] => ten
    [2] => eleven
    [3] => one
    [4] => two
    [5] => hundred
)
Array
(
    [0] => zero
    [10] => ten
    [11] => eleven
    [1] => one
    [2] => two
    [100] => hundred
)

試試看

想直接線上實作的話可以透過Example傳送門來練習。


相關函數