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 相关文章推荐
3.从实例开始
Oct 09 PHP
PHP+Tidy-完美的XHTML纠错+过滤
Apr 10 PHP
PHP函数篇之掌握ord()与chr()函数应用
Dec 05 PHP
3个PHP多维数组转为一维数组的方法实例
Mar 13 PHP
PHP中spl_autoload_register()和__autoload()区别分析
May 10 PHP
PHP连接access数据库
Mar 27 PHP
PHP实现链式操作的核心思想
Jun 23 PHP
Yii使用技巧大汇总
Dec 29 PHP
PHP常见的6个错误提示及解决方法
Jul 07 PHP
PHP实现更改hosts文件的方法示例
Aug 08 PHP
php中如何执行linux命令详解
Nov 06 PHP
Laravel如何自定义command命令浅析
Mar 23 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 去除html标记--strip_tags与htmlspecialchars的区别详解
2013/06/26 PHP
php实现加减法验证码代码
2014/02/14 PHP
PHP中phar包的使用教程
2017/06/14 PHP
javascript 框架小结 个人工作经验
2009/06/13 Javascript
jQuery EasyUI API 中文文档 - Parser 解析器
2011/09/29 Javascript
javascript 原型链维护和继承详解
2014/11/26 Javascript
jquery通过load获取文件的内容并跳到锚点的方法
2015/01/29 Javascript
Javascript实现计算个人所得税
2015/05/10 Javascript
jQuery入门基础知识学习指南
2015/08/14 Javascript
AngularJS入门教程之AngularJS表达式
2016/04/18 Javascript
AngularJS入门教程之过滤器用法示例
2016/11/02 Javascript
JS实现直接运行html代码的方法
2017/03/13 Javascript
js实现unicode码字符串与utf8字节数据互转详解
2019/03/21 Javascript
Vue 子组件与数据传递问题及注意事项
2019/07/11 Javascript
微信小程序 调用远程接口 给全局数组赋值代码实例
2019/08/13 Javascript
微信小程序image图片加载完成监听
2019/08/31 Javascript
uni-app自定义导航栏按钮|uniapp仿微信顶部导航条功能
2019/11/12 Javascript
python不带重复的全排列代码
2013/08/13 Python
低版本中Python除法运算小技巧
2015/04/05 Python
Python编写生成验证码的脚本的教程
2015/05/04 Python
Python优先队列实现方法示例
2017/09/21 Python
Python常见MongoDB数据库操作实例总结
2018/07/24 Python
使用 Visual Studio Code(VSCode)搭建简单的Python+Django开发环境的方法步骤
2018/12/17 Python
用python生成(动态彩色)二维码的方法(使用myqr库实现)
2019/06/24 Python
Python 占位符的使用方法详解
2019/07/10 Python
Python如何将装饰器定义为类
2020/07/30 Python
美国女性卫生用品公司:Thinx
2017/06/30 全球购物
CHARLES & KEITH英国官网:新加坡时尚品牌
2018/07/04 全球购物
伊莱克斯阿根廷网上商店:Tienda Electrolux
2021/03/08 全球购物
实习护理工作自我评价
2013/09/25 职场文书
平面设计师工作职责范文
2013/12/03 职场文书
影视制作岗位职责
2013/12/04 职场文书
医院护士的求职信范文
2013/12/26 职场文书
继承权公证书范本
2015/01/23 职场文书
培训通知
2015/04/17 职场文书
接收函
2019/04/22 职场文书