將矩陣合併時,常常會想到以下這兩種方法。array_combine與array_merge。
了解這兩者的差別後,就可以依照需求使用適合的函數來達成目的。
簡單地說,區分如下。
本文說明 PHP array_merge使用說明與範例。
array_merge ( array $array1 [, array $... ] ) : array
將多個矩陣合併成新的矩陣,合併順序依照設定的引數順序銜接合併,最後將合併的矩陣返回。
注意:若是合併的矩陣中有相同的字串鍵名時,則該鍵名對應的值會被後面矩陣的值覆蓋。 然而若鍵名是數字時則不會被後面的矩陣覆蓋,而是直接銜接下去,但數字鍵名會被重新排列。
有兩個矩陣分別含有學生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
)
接著,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。
數字鍵值的矩陣合併。 使用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傳送門來練習。
Laravel8+Vue3+Bootstrap5實作TODO List ep09:安裝bootstrap5並美化todo list畫面
Laravel8+Vue3+Bootstrap5實作TODO List ep07:安裝vue3跟基本設定
Laravel8+Vue3+Bootstrap5實作TODO List ep08:用vue重新製作todo list畫面
Laravel8+Vue3+Bootstrap5實作TODO List ep06:初步認識Web Route
Laravel8+Vue3+Bootstrap5實作TODO List ep05:製作新增、更新、刪除待辦事項的API