入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

PHP中两个数组合并可以使用+或者array_merge 区别

创建时间:2015-01-09 投稿人: 浏览次数:104
PHP中两个数组合并可以使用+或者array_merge,但之间还是有区别的,而且这些区别如果了解不清楚项目中会要命的!


主要区别是两个或者多个数组中如果出现相同键名,键名分为字符串或者数字,需要注意


1)键名为数字时,array_merge()后面的值将不会覆盖原来的值,而是附加到后面,但+合并数组则会把最先出现的值作为最终结果返回,而把后面的数组拥有相同键名的那些值“抛弃”掉(不是覆盖)


2)键名为字符串时,array_merge()此时会覆盖掉前面相同键名的值,但+仍然把最先出现的值作为最终结果返回,而把后面的数组拥有相同键名的那些值“抛弃”掉(不是覆盖)。


需要注意的是数组键形式 "数字" 等价于 数字

$a = array("a", "b");
$b = array("c", "d");
$c = $a + $b;
print_r($a);
print_r(array_merge($a, $b));
//输出:
Array ( [0] => a [1] => b ) 
Array ( [0] => a [1] => b [2] => c [3] => d )


array  0 => string "a" (length=1)  1 => string "b" (length=1)array  0 => string "a" (length=1)  1 => string "b" (length=1)  2 => string "c" (length=1)  3 => string "d" (length=1)

++++++++++++++++++++++++++++++++++++++++++    
$a = array(	0 => "a",	1 => "b");
$b = array(	0 => "c",	1 => "b");
$c = $a + $b;
print_r($c);
echo "<br />";
print_r(array_merge($a, $b));
//输出:
Array ( [0] => a [1] => b ) 
Array ( [0] => a [1] => b [2] => c [3] => b )

array  0 => string "a" (length=1)  1 => string "b" (length=1)array  0 => string "a" (length=1)  1 => string "b" (length=1)  2 => string "c" (length=1)  3 => string "b" (length=1)
++++++++++++++++++++++++++++++++++++++++++  
$a = array("a", "b");
$b = array(	"0" => "c",	1 => "b");
$c = $a + $b;
print_r($c);
echo "<br />";
print_r(array_merge($a, $b));

//输出:
Array ( [0] => a [1] => b ) 
Array ( [0] => a [1] => b [2] => c [3] => b )

array  0 => string "a" (length=1)  1 => string "b" (length=1)array  0 => string "a" (length=1)  1 => string "b" (length=1)  2 => string "c" (length=1)  3 => string "b" (length=1)
++++++++++++++++++++++++++++++++++++++++++ 
echo "4 <br />";
$a = array(	0 => "a",	1 => "b");
$b = array(	0 => "c",	1 => "b");
$c = $a + $b;
print_r($c);
echo "<br />";
print_r(array_merge($a, $b));
输出:
Array ( [0] => a [1] => b ) 
Array ( [0] => a [1] => b [2] => c [3] => b )

array  0 => string "a" (length=1)  1 => string "b" (length=1)array  0 => string "a" (length=1)  1 => string "b" (length=1)  2 => string "c" (length=1)  3 => string "b" (length=1)
 

对多个数组合并去重技巧

$a = array("1001","1002");$b = array("1002","1003","1004");$c = array("1003","1004","1005");$d = count(array_flip($a) + array_flip($b) + array_flip($c));


声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。