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文本操作类
Nov 25 PHP
PHP操作文件方法问答
Mar 16 PHP
PHP Class&amp;Object -- PHP 自排序二叉树的深入解析
Jun 25 PHP
PHP中把stdClass Object转array的几个方法
May 08 PHP
PHP中余数、取余的妙用
Jun 29 PHP
PHP页面转UTF-8中文编码乱码的解决办法
Oct 20 PHP
Thinkphp实现自动验证和自动完成
Dec 19 PHP
Yii使用技巧大汇总
Dec 29 PHP
php使用正则验证中文
Apr 06 PHP
php简单实现批量上传图片的方法
May 09 PHP
yii2带搜索功能的下拉框实例详解
May 12 PHP
laravel5.5安装jwt-auth 生成token令牌的示例
Oct 24 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中cookies使用指南
2007/03/16 PHP
php array_intersect()函数使用代码
2009/01/14 PHP
PHP文件锁函数flock()详细介绍
2014/11/18 PHP
php实现的简单检验登陆类
2015/06/18 PHP
php支付宝系列之电脑网站支付
2018/05/30 PHP
jquery.validate分组验证代码
2011/03/17 Javascript
一些常用的JavaScript函数(json)附详细说明
2011/05/25 Javascript
利用jquery.qrcode在页面上生成二维码且支持中文
2014/02/12 Javascript
jquery ztree实现模糊搜索功能
2016/02/25 Javascript
原生js实现可拖动的登录框效果
2017/01/21 Javascript
NodeJs测试框架Mocha的安装与使用
2017/03/28 NodeJs
详解wow.js中各种特效对应的类名
2017/09/13 Javascript
AngularJS与后端php的数据交互方法
2018/08/13 Javascript
微信小程序页面调用自定义组件内的事件详解
2019/09/12 Javascript
如何用vue-cli3脚手架搭建一个基于ts的基础脚手架的方法
2019/12/12 Javascript
Vue中this.$nextTick的作用及用法
2020/02/04 Javascript
微信小程序多列表渲染数据开关互不影响的实现
2020/06/05 Javascript
用Python实现一个简单的能够上传下载的HTTP服务器
2015/05/05 Python
在Django框架中编写Contact表单的教程
2015/07/17 Python
python实现求两个字符串的最长公共子串方法
2018/07/20 Python
Python之时间和日期使用小结
2019/02/14 Python
Django关于admin的使用技巧和知识点
2020/02/10 Python
Python cookie的保存与读取、SSL讲解
2020/02/17 Python
基于Python实现视频的人脸融合功能
2020/06/12 Python
python使用ctypes库调用DLL动态链接库
2020/10/22 Python
scrapy-splash简单使用详解
2021/02/21 Python
html5 canvas的绘制文本自动换行的示例代码
2018/09/17 HTML / CSS
HTML5中外部浏览器唤起微信分享功能的代码
2020/09/15 HTML / CSS
学生的自我鉴定范文
2013/10/24 职场文书
个人委托书格式
2014/04/04 职场文书
2016年春节问候语
2015/11/11 职场文书
python中pandas.read_csv()函数的深入讲解
2021/03/29 Python
用golang如何替换某个文件中的字符串
2021/04/25 Golang
Pytorch 统计模型参数量的操作 param.numel()
2021/05/13 Python
Oracle 区块链表创建过程详解
2021/05/15 Oracle
vue+iview实现手机号分段输入框
2022/03/25 Vue.js