[PHP] array_merge 將多個陣列合併為單一陣列

在PHP之中,當你有多個陣列想要同時合併成一個陣列的時候,可以透過 array_merge() 函數,將兩個以上的陣列合併為一個陣列,以增加陣列資料取用的便利性

使用方式:

$array = array_merge ( 陣列1, 陣列2 [, 陣列3 ......] );

陣列:將每一個你想要合併的陣列依序用逗點間隔放入括號之中 ( 放入順序也會影響合併後陣列內容的順序哦!)

array_merge() 這個函數輸出時也是以一個array陣列來呈現,因此你仍然必須要替他設定一個變數才行!

使用範例:

$Array_1 = array( "Name" => "Peter", "Gender" => "Male", "Age" => "18"); // 陣列1
$Array_2 = array( "Email" => "abc@aaa.com", "PhoneNumber" => "0912345678" ); // 陣列2
$Array = array_merge($Array_1, $Array_2);
print_r($Array);

輸出結果:

Array
(
    [Name] => Peter
    [Gender] => Male
    [Age] => 18
    [Email] => abc@aaa.com
    [PhoneNumber] => 0912345678
)

 

額外情境:

如果在多個SQL資料表中個別提取資料出來,並且你希望直接將它合併再一起,你也可以按照類似的方法將其合併,這樣之後要取用的時候就可以只取用一個陣列變數即可,增加方便程度。

例如:

$db_1 = $Result_1->fetch_assoc();
$db_2 = $Result_2->fetch_assoc();
$db_3 = $Result_3->fetch_assoc();

$db = array_merge($db_1, $db_2, $db_3);

 

特殊提醒:

當你的Key值是數字的時候,array_merge將會重新排序這些數字,這要特別注意!

被更新後的Key值會依據在array_merge中的陣列順序下去排序,實際情況請看下方範例:

$Array_a = array( 7 => "h", 8 => "i", 9 => "j");
$Array_b = array( 0 => "a", 1 => "b", 2 => "c");
$Array = array_merge($Array_a, $Array_b);
print_r($Array);

輸出結果:

Array
(
    [0] => h
    [1] => i
    [2] => j
    [3] => a
    [4] => b
    [5] => c
)

 

除此之外,如果合併的變數key值同時有字串與數字兩種,那麼在數字的部分一樣會從0開始被重新編排,所以在如果變數的Key值都是字串者,可以用這個方法很輕易地將其合併再一起!

參考來源:https://www.php.net/manual/en/function.array-merge
更多PHP相關閱讀:https://richarlin.tw/blog/category/website/php/

Facebook 留言回應