php中陣列+和array_merge區別
阿新 • • 發佈:2019-01-03
主要區別在與兩個或多個數組在合併時,出現相同的鍵名時處理方式不一樣
一、當鍵名為數字時,array_merge不會覆蓋原來的值,+會拋棄後面的值
<?php
/**
* Created by PhpStorm.
* User: lzc
* Date: 2017/3/18
* Time: 10:02
*/
$a = [1,2,3];
$b = [4,5,6];
var_dump($a+$b);
var_dump(array_merge($a,$b));
?>
結果為:二、當鍵名為字串時,+會捨棄掉後面鍵相同的元素,array_merge鍵相同的後面元素覆蓋前面元素array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3) } array(6) { [0]=> int(1) [1]=> int(2) [2]=> int(3) [3]=> int(4) [4]=> int(5) [5]=> int(6) }
<?php
/**
* Created by PhpStorm.
* User: lzc
* Date: 2017/3/18
* Time: 10:02
*/
$a = ['a'=>1,'b'=>2,'c'=>3];
$b = ['a'=>4,'d'=>5];
var_dump($a+$b);
var_dump(array_merge($a,$b));
?>
結果為:
array(4) { ["a"]=> int(1) ["b"]=> int(2) ["c"]=> int(3) ["d"]=> int(5) } array(4) { ["a"]=> int(4) ["b"]=> int(2) ["c"]=> int(3) ["d"]=> int(5) }