星期五, 九月 25, 2009

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 的錯誤訊息.

延伸閱讀

相關標籤

Add this page to del.icio.us

發表迴響

標題

內容 (限制 1000 字)

暱稱

電子郵件

個人網頁


 authimage


PS: 若無法留言, 請先確認是否有打開 JavaScript, 造成您的困擾, 實在萬分對不起 Orz...(如果無法留言, 勞煩可以發信給我好嗎? 謝謝.)
PS2: 若您的留言被誤判, 我都會再自行看過, 不需要一直重覆張貼~