$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()此时会覆盖掉前面相同键名的值