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 相关文章推荐
56.com视频采集接口程序(PHP)
Sep 22 PHP
数据库查询记录php 多行多列显示
Aug 15 PHP
linux下删除7天前日志的代码(php+shell)
Jan 02 PHP
PHP stream_context_create()作用和用法分析
Mar 29 PHP
PHP中根据IP地址判断城市实现城市切换或跳转代码
Sep 04 PHP
PHP获取数组中某元素的位置及array_keys函数应用
Jan 29 PHP
PHP统计二维数组元素个数的方法
Nov 12 PHP
windows中为php安装mongodb与memcache
Jan 06 PHP
PHP弹出对话框技巧详细解读
Sep 26 PHP
php验证码生成代码
Nov 11 PHP
PhpStorm的使用教程(本地运行PHP+远程开发+快捷键)
Mar 26 PHP
详解phpstorm2020最新破解方法
Sep 17 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
索尼SONY ICF-7600A(W)电路分析
2021/03/01 无线电
域名查询代码公布
2006/10/09 PHP
php数组函数序列之array_key_exists() - 查找数组键名是否存在
2011/10/29 PHP
PHP stream_context_create()函数的使用示例
2015/05/12 PHP
Mac下php 5升级到php 7的步骤详解
2017/04/26 PHP
Laravel学习教程之本地化模块
2017/08/18 PHP
PHP面向对象程序设计(OOP)之方法重写(override)操作示例
2018/12/21 PHP
js变量作用域及可访问性的探讨
2006/11/23 Javascript
js substring从右边获取指定长度字符串(示例代码)
2013/12/23 Javascript
文本框水印提示效果的简单实现代码
2014/02/22 Javascript
jquery实现ajax提交form表单的方法总结
2014/03/03 Javascript
jQuery+jRange实现滑动选取数值范围特效
2015/03/14 Javascript
AngularJS动态加载模块和依赖的方法分析
2016/11/08 Javascript
nodejs简单访问及操作mysql数据库的方法示例
2018/03/15 NodeJs
element ui table 增加筛选的方法示例
2018/11/02 Javascript
vue elementUI 表单校验功能之数组多层嵌套
2019/06/04 Javascript
jquery.pager.js分页实现详解
2019/07/29 jQuery
微信小程序实现弹幕墙(祝福墙)
2020/11/18 Javascript
[01:09:10]NB vs Liquid Supermajor小组赛 A组胜者组决赛 BO3 第一场 6.2
2018/06/04 DOTA
python检测是文件还是目录的方法
2015/07/03 Python
Using Django with GAE Python 后台抓取多个网站的页面全文
2016/02/17 Python
Python计时相关操作详解【time,datetime】
2017/05/26 Python
Python将多份excel表格整理成一份表格
2018/01/03 Python
在VS Code上搭建Python开发环境的方法
2018/04/06 Python
Python hashlib模块用法实例分析
2018/06/12 Python
python flask框架实现重定向功能示例
2019/07/02 Python
简单分析python的类变量、实例变量
2019/08/23 Python
基于Python数据结构之递归与回溯搜索
2020/02/26 Python
scrapy-splash简单使用详解
2021/02/21 Python
中东地区最大的奢侈品市场:The Luxury Closet
2019/04/09 全球购物
医药营销个人求职信范文
2014/02/07 职场文书
幼儿园五一活动方案
2014/02/07 职场文书
光信息科学与技术专业职业生涯规划
2014/03/13 职场文书
领导干部学习十八届五中全会精神心得体会
2016/01/05 职场文书
Spring boot实现上传文件到本地服务器
2022/08/14 Java/Android
windows server2012 R2下安装PaddleOCR服务的的详细步骤
2022/09/23 Servers