当键名相同时
-
键名类型为字符串时,array_merge后面的值会把前面的值覆盖掉
-
键名类型为数字时,array_merge不会覆盖
-
+号,不管键名类型为字符串或数字,当键名相同时,前面的值逗号把后面的值覆盖掉
<?php
//键值类型为字符串,且键名相同
$arr1 = array('a'=>'PHP');
$arr2 = array('a'=>'Python');
//array_merge 中,后面的值会把前面的覆盖掉,Array([a] => Python)
print_r(array_merge($arr1,$arr2));
//+最先出现的值作为结果,后面键名相同的会被抛弃
print_r(($arr1+$arr2));
echo PHP_EOL,'=========================',PHP_EOL;
$arr3 = array('JAVA','PHP');
$arr4 = array('PYTHON','PHP');
$ret = array_merge($arr3,$arr4);
print_r($ret);
print_r($arr3+$arr4);
echo PHP_EOL,'=========================',PHP_EOL;
$arr5 = array(1=>'1',2=>'2');
$arr6 = array(1=>'1',2=>'3',8=>'2');
print_r($arr5+$arr6);
echo PHP_EOL,'=========================',PHP_EOL;
$arr7 = array("a"=>"PHP","C");
$arr8 = array("a"=>"JAVA","C","PYTHON");
print_r(array_merge_recursive($arr7,$arr8));
Array
(
[a] => Python
)
Array
(
[a] => PHP
)
=========================
Array
(
[0] => JAVA
[1] => PHP
[2] => PYTHON
[3] => PHP
)
Array
(
[0] => JAVA
[1] => PHP
)
=========================
Array
(
[1] => 1
[2] => 2
[8] => 2
)
=========================
Array
(
[a] => Array
(
[0] => PHP
[1] => JAVA
)
[0] => C
[1] => C
[2] => PYTHON
)
网友评论