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 配置open_basedir 让各虚拟站点独立运行
Nov 12 PHP
在PHP中检查PHP文件是否有语法错误的方法
Dec 23 PHP
PHP中spl_autoload_register函数的用法总结
Nov 07 PHP
ThinkPHP中Common/common.php文件常用函数功能分析
May 20 PHP
Yii视图操作之自定义分页实现方法
Jul 14 PHP
PHP判断用户是否已经登录(跳转到不同页面或者执行不同动作)
Sep 22 PHP
php外部执行命令函数用法小结
Oct 11 PHP
PHP面向对象程序设计类的定义与用法简单示例
Dec 27 PHP
PHP基于IMAP收取邮件的方法示例
Aug 07 PHP
PHP实现的62进制转10进制,10进制转62进制函数示例
Jun 06 PHP
Laravel框架Auth用户认证操作实例分析
Sep 29 PHP
PHP Swoole异步MySQL客户端实现方法示例
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多线程异步请求的3种方法
2014/01/17 PHP
PHP合并数组函数array_merge用法分析
2017/02/17 PHP
php curl上传、下载、https登陆实现代码
2017/07/23 PHP
Jquery选择器中使用变量实现动态选择例子
2014/07/25 Javascript
禁用页面部分JavaScript不是全部而是部分
2014/09/03 Javascript
Javascript快速排序算法详解
2014/12/03 Javascript
基于javascript实现句子翻牌网页版小游戏
2016/03/23 Javascript
AngularJS通过$sce输出html的方法
2016/09/22 Javascript
JavaScript创建对象的七种方式全面总结
2017/08/21 Javascript
详解让sublime text3支持Vue语法高亮显示的示例
2017/09/29 Javascript
Thinkjs3新手入门之添加一个新的页面
2017/12/06 Javascript
JavaScript获取当前url路径过程解析
2019/12/27 Javascript
[04:26]2014DOTA2西雅图国际邀请赛 总决赛TOPPLAY
2014/07/22 DOTA
[00:27]DOTA2战队VP、Secret贺新春
2018/02/11 DOTA
决策树的python实现方法
2014/11/18 Python
Python模拟登陆实现代码
2017/06/14 Python
Python实现简单的HttpServer服务器示例
2017/09/25 Python
Python实现翻转数组功能示例
2018/01/12 Python
Python调用服务接口的实例
2019/01/03 Python
Python遍历文件夹 处理json文件的方法
2019/01/22 Python
python钉钉机器人运维脚本监控实例
2019/02/20 Python
详解Python解决抓取内容乱码问题(decode和encode解码)
2019/03/29 Python
python在新的图片窗口显示图片(图像)的方法
2019/07/11 Python
深入浅析python的第三方库pandas
2020/02/13 Python
浅析数据存储的三种方式 cookie sessionstorage localstorage 的异同
2020/06/04 HTML / CSS
ALEX AND ANI:手镯,项链,耳环和更多
2017/04/20 全球购物
美国特价机票专家:Airfarewatchdog
2018/01/24 全球购物
Expedia西班牙:预订酒店、机票、旅行和廉价度假套餐
2019/04/10 全球购物
美国购买体育、音乐会和剧院门票网站:SelectATicket
2019/09/08 全球购物
HomeAway英国:全球领先的度假租赁在线市场
2020/02/03 全球购物
工作个人的自我评价
2014/01/14 职场文书
小学毕业感言150字
2014/02/05 职场文书
酒店管理专业毕业生求职自荐信
2014/04/28 职场文书
小学优秀教育工作者事迹材料
2014/05/09 职场文书
个人简历自荐信
2014/06/26 职场文书
环保建议书作文400字
2015/09/14 职场文书