同为数组合并,+
和 array_merge()
但是还是有差别的:
键名为数字时,array_merge()
不会覆盖掉原来的值,但 +
合并数组则会把最先出现的值作为最终结果返回,而把后面的数组拥有相同键名的那些值抛弃掉(不是覆盖)
$a = array('a','b');
$b = array('c', 'd');
$c = $a + $b;
var_dump($c);
// 输出:
// array (size=2)
// 0 => string 'a' (length=1)
// 1 => string 'b' (length=1)
var_dump(array_merge($a, $b));
// 输出:
// array (size=4)
// 0 => string 'a' (length=1)
// 1 => string 'b' (length=1)
// 2 => string 'c' (length=1)
// 3 => string 'd' (length=1)
键名为字符时,+
仍然把最先出现的键名的值作为最终结果返回,而把后面的数组拥有相同键名的那些值抛弃掉,但 array_merge()
此时会覆盖掉前面相同键名的值
$a = array('a' => 'a' ,'b' => 'b');
$b = array('a' => 'A', 'b' => 'B');
$c = $a + $b;
var_dump($c);
//输出:
// array (size=2)
// 'a' => string 'a' (length=1)
// 'b' => string 'b' (length=1)
var_dump(array_merge($a, $b));
// 输出:
// array (size=2)
// 'a' => string 'A' (length=1)
// 'b' => string 'B' (length=1)
网友评论