PHP中array_merge和array相加的区别分析


Posted in PHP onJune 17, 2013

首先来看看键名是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
$arr1 = array("a"=>"php","c");
$arr2 = array("a"=>"java","c","ruby");
print_r(array_merge_recursive($arr1, $arr2));
?>

结果如下:
Array
(
    [a] => Array
        (
            [0] => php
            [1] => java
        )
    [0] => c
    [1] => c
    [2] => ruby
)
这样,就可以获取多个数组中键名相同的元素值集合了。
PHP 相关文章推荐
php将数据库中的电话号码读取出来并生成图片
Aug 31 PHP
php中定义网站根目录的常用方法
Aug 08 PHP
php与mysql建立连接并执行SQL语句的代码
Jul 04 PHP
php中通过数组进行高效随机抽取指定条记录的算法
Sep 09 PHP
关于php内存不够用的快速解决方法
Oct 26 PHP
PHP中redis的用法深入解析
Feb 20 PHP
PHP的fsockopen、pfsockopen函数被主机商禁用的解决办法
Jul 08 PHP
用 Composer构建自己的 PHP 框架之构建路由
Oct 30 PHP
php批量删除超链接的实现方法
Oct 19 PHP
php实现smarty模板无限极分类的方法
Dec 07 PHP
php字符串函数 str类常见用法示例
May 15 PHP
PHP中SESSION过期设置
Mar 09 PHP
php之Memcache学习笔记
Jun 17 #PHP
解析ajax事件的调用顺序
Jun 17 #PHP
sql注入与转义的php函数代码
Jun 17 #PHP
Linux环境下搭建php开发环境的操作步骤
Jun 17 #PHP
PHP之短标签开启设置
Jun 17 #PHP
深入掌握include_once与require_once的区别
Jun 17 #PHP
php抓取页面的几种方法详解
Jun 17 #PHP
You might like
PHP 伪静态隐藏传递参数名的四种方法
2010/02/22 PHP
smarty巧妙处理iframe中内容页的代码
2012/03/07 PHP
php实现转换ubb代码的方法
2015/06/18 PHP
WordPress中编写自定义存储字段的相关PHP函数解析
2015/12/25 PHP
在WordPress中安装使用视频播放器插件Hana Flv Player
2016/01/04 PHP
搜索附近的人PHP实现代码
2018/02/11 PHP
javascript 获取元素位置的快速方法 getBoundingClientRect()
2009/11/26 Javascript
js判断输入是否为数字的具体实例
2013/08/03 Javascript
JS中引用百度地图并将百度地图的logo和信息去掉
2013/09/29 Javascript
javascript禁用Tab键脚本实例
2013/11/22 Javascript
JS中判断null、undefined与NaN的方法
2014/03/26 Javascript
使用jquery操作session方法分享
2015/01/22 Javascript
javascript实现网页端解压并查看zip文件
2015/12/15 Javascript
JavaScript数据类型学习笔记
2016/01/25 Javascript
Vue2 Vue-cli中使用Typescript的配置详解
2017/07/24 Javascript
详解vue 动态加载并注册组件且通过 render动态创建该组件
2019/05/30 Javascript
Element实现表格分页数据选择+全选所有完善批量操作
2019/06/07 Javascript
vue 清空input标签 中file的值操作
2020/07/21 Javascript
vue中watch和computed的区别与使用方法
2020/08/23 Javascript
[40:55]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#4Newbee VS Fnatic
2016/03/03 DOTA
[01:22:29]真视界:2019年国际邀请赛总决赛
2020/01/29 DOTA
Python多线程编程(二):启动线程的两种方法
2015/04/05 Python
python通过ssh-powershell监控windows的方法
2015/06/02 Python
Python中的super()方法使用简介
2015/08/14 Python
Python数据类型学习笔记
2016/01/13 Python
Python在不同目录下导入模块的实现方法
2017/10/27 Python
python使用MQTT给硬件传输图片的实现方法
2019/05/05 Python
Python求均值,方差,标准差的实例
2019/06/29 Python
浅谈Python中(&amp;,|)和(and,or)之间的区别
2019/08/07 Python
使用Python实现图像标记点的坐标输出功能
2019/08/14 Python
flask框架url与重定向操作实例详解
2020/01/25 Python
CSS3 选择器 伪类选择器介绍
2012/01/21 HTML / CSS
同事吵架检讨书
2014/02/05 职场文书
厕所文明标语
2014/06/11 职场文书
劳动纠纷调解协议书格式
2014/11/30 职场文书
2015年暑期社会实践报告
2015/07/13 职场文书