1)鍵名爲數字時,array_merge()不會覆蓋掉原來的值,但+合併數組則會把最先出現的值作爲最終結果返回,而把後面的數組擁有相同鍵名的那些值“拋棄”掉(不是覆蓋)
2)鍵名爲字符時,+仍然把最先出現的值作爲最終結果返回,而把後面的數組擁有相同鍵名的那些值“拋棄”掉,但array_merge()此時會覆蓋掉前面相同鍵名的值
需要注意的是數組鍵形式 '數字' 等價於 數字 '122'這個key值也算爲數字
- $a = array('a','b');
- $b = array('c', 'd');
- $c = $a + $b;
- var_dump($c);
- var_dump(array_merge($a, $b));
array (size=2)
0 => 'a' (length=1)
1 => 'b' (length=1)
array (size=4)
0 => 'a' (length=1)
1 => 'b' (length=1)
2 => 'c' (length=1)
3 => 'd' (length=1)
- $a = array(0 => 'a', 1 => 'b');
- $b = array(0 => 'c', 1 => 'b');
- $c = $a + $b;
- var_dump($c);
- var_dump(array_merge($a, $b));
array (size=2)
0 => 'a' (length=1)
1 => 'b' (length=1)
array (size=4)
0 => 'a' (length=1)
1 => 'b' (length=1)
2 => 'c' (length=1)
3 => 'b' (length=1)
- $a = array('a', 'b');
- $b = array('0' => 'c', 1 => 'b');
- $c = $a + $b;
- var_dump($c);
- var_dump(array_merge($a, $b));
array (size=2) 0 => 'a' (length=1) 1 => 'b' (length=1)
array (size=4) 0 => 'a' (length=1) 1 => 'b' (length=1) 2 => 'c' (length=1) 3 => 'b' (length=1)
- $a = array(0 => 'a', 1 => 'b');
- $b = array('0' => 'c', '1' => 'b');
- $c = $a + $b;
- var_dump($c);
- var_dump(array_merge($a, $b));
array (size=2) 0 => 'a' (length=1) 1 => 'b' (length=1)
array (size=4) 0 => 'a' (length=1) 1 => 'b' (length=1) 2 => 'c' (length=1) 3 => 'b' (length=1)