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学习之 数组声明
Jun 09 PHP
PHP导出MySQL数据到Excel文件(fputcsv)
Jul 03 PHP
php-cli简介(不会Shell语言一样用Shell)
Jun 03 PHP
php数组查找函数in_array()、array_search()、array_key_exists()使用实例
Apr 29 PHP
ThinkPHP3.1新特性之对Ajax的支持更加完善
Jun 19 PHP
php魔术变量用法实例详解
Nov 13 PHP
PHP中生成UUID自定义函数分享
Jun 10 PHP
PHP调试的强悍利器之PHPDBG
Feb 22 PHP
php实用代码片段整理
Nov 12 PHP
php常用数组array函数实例总结【赋值,拆分,合并,计算,添加,删除,查询,判断,排序】
Dec 07 PHP
PHP依赖注入原理与用法分析
Aug 21 PHP
PHP7 标准库修改
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学习教程之第2天
2008/06/15 PHP
PHP定时更新程序设计思路分享
2014/06/10 PHP
PHP实现JS中escape与unescape的方法
2016/07/11 PHP
PHP更安全的密码加密机制Bcrypt详解
2017/06/18 PHP
PHP基于imagick扩展实现合成图片的两种方法【附imagick扩展下载】
2017/11/14 PHP
PHP的图像处理实例小结【文字水印、图片水印、压缩图像等】
2019/12/20 PHP
jquery 简短右键菜单 多浏览器兼容
2010/01/01 Javascript
jquery实用代码片段集合
2010/08/12 Javascript
人人网javascript面试题 可以提前实现下
2012/01/05 Javascript
jquery 添加节点的几种方法介绍
2013/09/04 Javascript
jquery快捷动态绑定键盘事件的操作函数代码
2013/10/17 Javascript
JS案例分享之金额小写转大写
2014/05/15 Javascript
JS逆序遍历实现代码
2014/12/02 Javascript
JavaScript中的数学运算介绍
2014/12/29 Javascript
基于JS如何实现类似QQ好友头像hover时显示资料卡的效果(推荐)
2016/06/09 Javascript
jQuery获取多种input值的简单实现方法
2016/06/20 Javascript
ajax实现动态下拉框示例
2017/01/10 Javascript
微信小程序 label 组件详解及简单实例
2017/01/10 Javascript
浅谈vue的props,data,computed变化对组件更新的影响
2018/01/16 Javascript
nodejs+mongodb aggregate级联查询操作示例
2018/03/17 NodeJs
基于Vue2实现简易的省市区县三级联动组件效果
2018/11/05 Javascript
layer的prompt弹出框,点击回车,触发确定事件的方法
2019/09/06 Javascript
[02:27]2018DOTA2亚洲邀请赛赛前采访-OpTic
2018/04/03 DOTA
Django的models模型的具体使用
2019/07/15 Python
Django使用 Bootstrap 样式修改书籍列表过程解析
2019/08/09 Python
浅谈python中统计计数的几种方法和Counter详解
2019/11/07 Python
Python函数必须先定义,后调用说明(函数调用函数例外)
2020/06/02 Python
Python数据可视化实现漏斗图过程图解
2020/07/20 Python
基于PyInstaller各参数的含义说明
2021/03/04 Python
DC Shoes荷兰官方网站:美国极限运动品牌
2019/10/22 全球购物
应届生保险求职信
2013/11/11 职场文书
给领导的致歉信范文
2014/01/13 职场文书
预备党员承诺书
2014/03/25 职场文书
用人单位终止解除劳动合同证明书
2014/10/06 职场文书
廉洁自律承诺书范文
2015/04/28 职场文书
pnpm对npm及yarn降维打击详解
2022/08/05 Javascript