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 13 PHP
通过缓存数据库结果提高PHP性能的原理介绍
Sep 05 PHP
探讨:web上存漏洞及原理分析、防范方法
Jun 29 PHP
php实现根据字符串生成对应数组的方法
Sep 22 PHP
使用 PHPStorm 开发 Laravel
Mar 24 PHP
学习php设计模式 php实现访问者模式(Visitor)
Dec 07 PHP
PHP sleep()函数, usleep()函数
Aug 25 PHP
PHP利用正则表达式将相对路径转成绝对路径的方法示例
Feb 28 PHP
ThinkPHP框架实现数据增删改
May 07 PHP
PHP5.5新特性之yield理解与用法实例分析
Jan 11 PHP
PHP的HTTP客户端Guzzle简单使用方法分析
Oct 30 PHP
PHP日期和时间函数的使用示例详解
Aug 06 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
Windows下安装Memcached的步骤说明
2010/04/25 PHP
php使用Cookie控制访问授权的方法
2015/01/21 PHP
php array_walk_recursive 使用自定的函数处理数组中的每一个元素
2016/11/16 PHP
PHP编程文件处理类SplFileObject和SplFileInfo用法实例分析
2017/07/22 PHP
PHP判断是否是微信打开还是浏览器打开的方法
2019/02/27 PHP
THINKPHP5.1 Config的配置与获取详解
2020/06/08 PHP
六款帮助你实现惊艳视差滚动效果的jQuery插件
2012/09/14 Javascript
jQuery文本框(input textare)事件绑定方法教程
2013/04/24 Javascript
JSON传递bool类型数据的处理方式介绍
2013/09/18 Javascript
javascript实现微信分享
2014/12/23 Javascript
JavaScript快速切换繁体中文和简体中文的方法及网站支持简繁体切换的绝招
2016/03/07 Javascript
easyui-combobox 实现简单的自动补全功能示例
2016/11/08 Javascript
将angular.js项目整合到.net mvc中的方法详解
2017/06/29 Javascript
vue.js的双向数据绑定Object.defineProperty方法的神奇之处
2019/01/18 Javascript
vue cli 3.x 项目部署到 github pages的方法
2019/04/17 Javascript
uni-app 支持多端第三方地图定位的方法
2020/01/03 Javascript
vue学习笔记之Vue中css动画原理简单示例
2020/02/29 Javascript
vue项目中企业微信使用js-sdk时config和agentConfig配置方式详解
2020/12/15 Vue.js
[03:21]辉夜杯主赛事 12月25日TOP5
2015/12/26 DOTA
python检测lvs real server状态
2014/01/22 Python
python基于socket实现网络广播的方法
2015/04/29 Python
在Python中操作日期和时间之gmtime()方法的使用
2015/05/22 Python
python删除指定类型(或非指定)的文件实例详解
2015/07/06 Python
python生成1行四列全2矩阵的方法
2018/08/04 Python
python MultipartEncoder传输zip文件实例
2020/04/07 Python
Python自动化办公Excel模块openpyxl原理及用法解析
2020/11/05 Python
html5实现的便签特效(实战分享)
2013/11/29 HTML / CSS
加拿大时尚少女服装品牌:Garage
2016/10/10 全球购物
写出SQL四条最基本的数据操作语句(DML)
2012/12/12 面试题
教师节活动主持词
2014/04/02 职场文书
项目投资合作意向书
2014/07/29 职场文书
企业年检委托书范本
2014/10/14 职场文书
毕业生就业推荐表自我评价
2015/03/02 职场文书
2015年中秋节活动总结
2015/03/23 职场文书
2015暑期社会实践个人总结
2015/07/13 职场文书
2016教师廉洁从教心得体会
2016/01/13 职场文书