PHP 教程 PHP 中 array_merge 和 array 相加的区别
今天处理一个这样的问题:如何获取字符键名相同值不同的两个数组值集合,用
array_merge
和数组相加都不可行,让我认真比较了下 PHP 中
array_merge
和
array
相加的
区别
首先来看看键名是 string,两者区别:
代码如下:
<?php
$arr1
=
array
('a'=>'PHP');
$arr2
=
array
('a'=>'JAVA');
//如果键名为字符,且键名相同,array_merge()后面数组元素值会覆盖前面数组元素值
print_r(
array_merge
(
$arr1
,
$arr2
));
//Array ( [a] => JAVA )
//如果键名为字符,且键名相同,数组相加会将最先出现的值作为结果
print_r(
$arr1
+
$arr2
);
//Array ( [a] => PHP )
?>
如果键名是数字,两者区别:
代码如下:
<?php
$arr1
=
array
("C","PHP");
$arr2
=
array
("JAVA","PHP");
//如果键名为数字,array_merge()不会进行覆盖
print_r(
array_merge
(
$arr1
,
$arr2
));
//Array ( [0] => C [1] => PHP [2] => JAVA [3] => PHP )
//如果键名为数组,数组相加会将最先出现的值作为结果,后面键名相同的会被抛弃
print_r(
$arr1
+
$arr2
);
//Array ( [0] => C [1] => PHP )
?>
“
特别要注意。关于
array_merge
”
和数组相加的区别 上面已经阐述的很清楚了,回到我最初
“
”
的问题 如何最有效的获取字符键名相同值不同的两个数组值集合呢 ,不会这要对每个
数组遍历吧,PHP 中还有一个函数,获取你不常用:
array_merge_recursive
— 递归地合并
一个或多个数组,如果输入的数组中有相同的字符串键名,则这些值会被合并到一个数
组中去。如下例:
代码如下:
<?php