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 30 PHP
php数组一对一替换实现代码
Aug 31 PHP
PHP队列用法实例
Nov 05 PHP
php实现parent调用父类的构造方法与被覆写的方法
Feb 11 PHP
php支持断点续传、分块下载的类
May 02 PHP
Smarty环境配置与使用入门教程
May 11 PHP
ThinkPHP自定义Redis处理SESSION的实现方法
May 16 PHP
一个简单安全的PHP验证码类 附调用方法
Jun 24 PHP
PHP 输出缓冲控制(Output Control)详解
Aug 25 PHP
PHP结合Vue实现滚动底部加载效果
Dec 17 PHP
针对thinkPHP5框架存储过程bug重写的存储过程扩展类完整实例
Jun 16 PHP
php常用字符串查找函数strstr()与strpos()实例分析
Jun 21 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中3des加密代码(完全与.net中的兼容)
2012/08/02 PHP
php中explode与split的区别介绍
2012/10/03 PHP
PHP中最容易忘记的一些知识点总结
2013/04/28 PHP
浅析php变量作用域的一些问题
2013/08/08 PHP
[原创]php实现子字符串位置相互对调互换的方法
2016/06/02 PHP
PHP下 Mongodb 连接远程数据库的实例代码
2017/08/30 PHP
javascript中的几个运算符
2007/06/29 Javascript
解读IE和firefox下JScript和HREF的执行顺序
2008/01/12 Javascript
Javascript中的this绑定介绍
2011/09/22 Javascript
jQuery实现table隔行换色和鼠标经过变色的两种方法
2014/06/15 Javascript
Jquery常用的方法汇总
2015/09/01 Javascript
开启BootStrap学习之旅
2016/05/04 Javascript
JS把内容动态插入到DIV的实现方法
2016/07/19 Javascript
nodejs实现范围请求的实现代码
2018/10/12 NodeJs
Python3实现从文件中读取指定行的方法
2015/05/22 Python
Python找出最小的K个数实例代码
2018/01/04 Python
Django1.9 加载通过ImageField上传的图片方法
2018/05/25 Python
django rest framework 实现用户登录认证详解
2019/07/29 Python
基于Python数据分析之pandas统计分析
2020/03/03 Python
tensorflow 大于某个值为1,小于为0的实例
2020/06/30 Python
Django model重写save方法及update踩坑详解
2020/07/27 Python
CSS3 创建网页动画实现弹跳球动效果
2018/10/30 HTML / CSS
马来西亚在线购物市场:PGMall.my
2019/10/13 全球购物
全球最大运动品牌的男装、女装和童装官方库存商:A&A Sports
2021/01/17 全球购物
高级Java程序员面试要点
2013/08/02 面试题
管理部部长岗位职责
2013/12/05 职场文书
《雪地里的小画家》教学反思
2014/02/22 职场文书
求职意向书
2014/04/01 职场文书
质量安全标语
2014/06/07 职场文书
招标授权委托书样本
2014/09/23 职场文书
表扬稿范文
2015/01/17 职场文书
授权委托书
2015/01/28 职场文书
单位接收函格式
2015/01/30 职场文书
2015年感恩节活动总结
2015/03/24 职场文书
2015年实习单位评语
2015/03/25 职场文书
css布局巧妙技巧之css三角示例的运用
2022/03/16 HTML / CSS