PHP array_merge do not reset index

array_merge 用來進行2個或多個陣列合併

<?php

$array = [
    '0' => 'aaa',
    '2' => 'bbb',
    '4' => 'cdc',
];

$array2 = [
    '6' => 'ddd',
    '8' => 'eee',
    '10' => 'fff',
];

$array3 = [
    '12' => 'ggg',
    '74' => 'hhh',
    '16' => 'iii',
];

$output = array_merge( $array , $array2 , $array3 );
print_r($output);

輸出結果:

Array
(
    [0] => aaa
    [1] => bbb
    [2] => cdc
    [3] => ddd
    [4] => eee
    [5] => fff
    [6] => ggg
    [7] => hhh
    [8] => iii
)

輸出出結果,陣列的索引重新排序了。某些情況陣列的索引與值是有關聯的,這麼做丟失索引及值的關聯,目前 array_merge 並沒有是否重建索引的選項,所以要透過另外一種方式來合併陣列,並保持索引鍵與值的關聯。

透過下面的代碼實現:

$array = $array + $array2 + $array3  ;
print_r($array);

輸出結果:

Array
(
    [0] => aaa
    [2] => bbb
    [4] => cdc
    [6] => ddd
    [8] => eee
    [10] => fff
    [12] => ggg
    [74] => hhh
    [16] => iii
)

就這樣,用運算符「+」來進行陣列的累加,非常簡單,且保持 鍵與值的關聯。

請注意型態必須都為 array
但也不必太擔心,型態錯誤會報錯

如果文章對您很有幫助
請我喝杯咖啡吧

Bitcoin 比特幣錢包:

38ieWXhURt27br9XrDoCeo4eruzKyi8QKs



ann71727

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料