PHP 的 array merge 保留 key 的值

PHP 的 array_merge 會將 數值 變成 0, 1, 2..., 就算是強制轉換成字串也一樣.

範例 - 使用 array_merge


<?php
$a1 = array(
    '9' => '0',
    '311' => '1',
    '快樂' => '2',
    '2009a' => '3');

$a2 = array(
    '2009' => '11',
    '聖誕節' => '22',
    '111a' => '33');

$amerge = array();


$amerge = array_merge($a1, $a2);

print_r($amerge);
?>

輸出結果

Array
(
    [0] => 0
    [1] => 1
    [快樂] => 2
    [2009a] => 3
    [2] => 11
    [聖誕節] => 22
    [111a] => 33
)

於 官方網站查(array_merge), 使用 "+" 就可以 merge, 而且會將 key(hash、index) 值保留.

範例 - 使用 + 合併


<?php
$a1 = array(
    '9'     => '0',
    '311'   => '1',
    '快樂'   => '2',
    '2009a' => '3'
);

$a2 = array(
    '2009'  => '11',
    '聖誕節' => '22',
    '111a'  => '33'
);

$amerge = array();


$amerge = $a1 + $a2;

print_r($amerge);
?>

輸出結果

Array
(
    [9] => 0
    [311] => 1
    [快樂] => 2
    [2009a] => 3
    [2009] => 11
    [聖誕節] => 22
    [111a] => 33
)

注意事項

  • + 只能用在 Array 的 Merge, 若 Array 與 字串 相加, 會出現 Unsupported operand types 的錯誤訊息.

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

發表迴響

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