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安装攻略:常见问题解答(一)
Oct 09 PHP
php自动跳转中英文页面
Jul 29 PHP
PHP 数据结构 算法 三元组 Triplet
Jul 02 PHP
php中设置多级目录session的问题
Aug 08 PHP
修改PHP的memory_limit限制的方法分享
Feb 21 PHP
解析php中curl_multi的应用
Jul 17 PHP
使用php批量删除数据库下所有前缀为prefix_的表
Jun 09 PHP
PHP使用DOMDocument类生成HTML实例(包含常见标签元素)
Jun 25 PHP
自己写的php中文截取函数mb_strlen和mb_substr
Feb 09 PHP
win10环境PHP 7 安装配置【教程】
May 09 PHP
Ajax PHP JavaScript MySQL实现简易无刷新在线聊天室
Aug 17 PHP
php观察者模式应用场景实例详解
Feb 03 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实现多服务器共享SESSION数据的方法
2007/03/16 PHP
php获取淘宝分类id示例
2014/01/16 PHP
PHP中的插件机制原理和实例
2014/07/08 PHP
php 使用array函数实现分页
2015/02/13 PHP
PHP文字转图片功能原理与实现方法分析
2017/08/31 PHP
用jscript实现列出安装的软件列表
2007/06/18 Javascript
EXT中xtype的含义分析
2010/01/07 Javascript
Jquery跳到页面指定位置的方法
2014/05/12 Javascript
js实现从中间开始往上下展开网页窗口的方法
2015/03/02 Javascript
学习javascript面向对象 实例讲解面向对象选项卡
2016/01/04 Javascript
jQuery基于muipicker实现仿ios时间选择
2016/02/22 Javascript
js模糊查询实例分享
2016/12/26 Javascript
javascript基础练习之翻转字符串与回文
2017/02/20 Javascript
基于复选框demo(分享)
2017/09/27 Javascript
微信小程序自定义底部弹出框
2020/11/16 Javascript
使用express获取微信小程序二维码小记
2019/05/21 Javascript
如何从头实现一个node.js的koa框架
2019/06/17 Javascript
es6中reduce的基本使用方法
2019/09/10 Javascript
解决vue项目中遇到 Cannot find module ‘chalk‘ 报错的问题
2020/11/05 Javascript
[42:52]Optic vs Serenity 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
详解使用pymysql在python中对mysql的增删改查操作(综合)
2017/01/18 Python
python绘制双柱形图代码实例
2017/12/14 Python
深入浅析Python获取对象信息的函数type()、isinstance()、dir()
2018/09/17 Python
Linux下Pycharm、Anaconda环境配置及使用踩坑
2018/12/19 Python
强悍的Python读取大文件的解决方案
2019/02/16 Python
python try 异常处理(史上最全)
2019/03/07 Python
浅谈django2.0 ForeignKey参数的变化
2019/08/06 Python
使用css3和jquery实现可伸缩搜索框
2014/02/12 HTML / CSS
将HTML5 Canvas的内容保存为图片借助toDataURL实现
2013/05/20 HTML / CSS
HTML5标签大全
2016/11/23 HTML / CSS
荷兰鞋类购物网站:Donelli
2019/05/24 全球购物
卫校中专生的自我评价
2014/01/15 职场文书
出纳员岗位责任制
2014/02/11 职场文书
珠宝店促销方案
2014/03/21 职场文书
MongoDB使用场景总结
2022/02/24 MongoDB
python获取带有返回值的多线程
2022/05/02 Python