合并数组 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')