$arr1 = array("a"=>"PHP","b"=>"java","python");
$arr2 = array("c" =>"ruby","d" => "c++","go","a"=> "swift");
$arr3 = array_merge($arr1,$arr2);
$arr4 = $arr1 + $arr2;
var_dump($arr3);
var_dump($arr4);die;
輸出:
array(6) { ["a"]=> string(5) "swift" ["b"]=> string(4) "java" [0]=> string(6) "python" ["c"]=> string(4) "ruby" ["d"]=> string(3) "c++" [1]=> string(2) "go" }
array(5) { ["a"]=> string(3) "PHP" ["b"]=> string(4) "java" [0]=> string(6) "python" ["c"]=> string(4) "ruby" ["d"]=> string(3) "c++" }
在PHP中可以使用array_merge 函數和兩個數組相加array+array的方式進行數組合並,但兩者效果並不相同,區別:
當下標為數值時,array_merge()不會覆蓋掉原來的值,但arrayA+arrayB合並數組則會把最先值arrayA的值作為最終結果返回,而把arrayB數組擁有相同鍵名的那些值“拋棄”掉,而不是覆蓋
當下標為字符時,arrayA+arrayB 仍然把最先出現的值作為最終結果返回,而把后面的數組擁有相同鍵名的那些值“拋棄”掉,但array_merge()此時會覆蓋掉前面相同鍵名的值