合并数组 array_merge和+对数组操作的区别

2018-08-13  本文已影响0人  lyhwbt

1.在数组的键值为数字形式时:
array_merge不会对数据产生覆盖,重新进行索引;
‘+’在后面的数组中与前面数组的键相同时,舍弃后面的数组。

<?php
    $arrone = array('qwer', 'qaz');
    $arrtwo = array('qwerqwer', 'qazqaz');
    $arrtwo2 = array('qwerqwer', 5=>'qazqaz');

    var_dump(array_merge($arrone, $arrtwo));
    //array(0=>string 'qwer', 1=>string 'qaz', 2=>string 'qwerqwer', 3=>string 'qazqaz')

    var_dump(array_merge($arrone, $arrtwo2));
    //array(0=>string 'qwer', 1=>string 'qaz', 2=>string 'qwerqwer', 3=>string 'qazqaz')

    var_dump($arrone + $arrtwo);
    //array(0=>string 'qwer', 1=>string 'qaz')

    var_dump($arrone + $arrtwo2);
    //array(0=>string 'qwer', 1=>string 'qaz', 5=>string 'qazqaz')

2.在数组的键值为字符串形式时:
array_merge会对数据产生覆盖;
‘+’在后面的数组中与前面数组的键相同时,舍弃后面的数组。

<?php
    $arrone = array('qwer'=>'qwer', 'qaz'=>'qaz');
    $arrtwo = array('qwer'=>'qwerqwer', 'qaz'=>'qazqaz');

    var_dump(array_merge($arrone, $arrtwo));
    //array('qwer'=>string 'qwerqwer', 'qaz'=>string 'qazqaz')

    var_dump($arrone + $arrtwo);
    //array('qwer'=>string 'qwer', 'qaz'=>string 'qaz')
上一篇下一篇

猜你喜欢

热点阅读