同為數組合并,+
和 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)