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 09 PHP
smarty+adodb+部分自定义类的php开发模式
Dec 31 PHP
php生成静态文件的多种方法分享
Jul 17 PHP
解析数组非数字键名引号的必要性
Aug 09 PHP
简单的php缓存类分享     php缓存机制
Jan 22 PHP
php读取3389的脚本
May 06 PHP
CI框架中libraries,helpers,hooks文件夹详细说明
Jun 10 PHP
php实现读取超大文件的方法
Jul 28 PHP
php专用数组排序类ArraySortUtil用法实例
Apr 03 PHP
PHP给源代码加密的几种方法汇总(推荐)
Feb 06 PHP
PHP 应用容器化以及部署方法
Feb 12 PHP
Yii框架多语言站点配置方法分析【中文/英文切换站点】
Apr 07 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小偷的核心程序
2007/04/09 PHP
apache+codeigniter 通过.htcaccess做动态二级域名解析
2012/07/01 PHP
利用php下载xls文件(自己动手写的)
2014/04/18 PHP
PHP中使用Imagick读取pdf并生成png缩略图实例
2015/01/21 PHP
PHP实现的自定义图像居中裁剪函数示例【测试可用】
2017/08/11 PHP
Chrome中模态对话框showModalDialog返回值问题的解决方法
2010/05/25 Javascript
Javascript中valueOf与toString区别浅析
2013/03/19 Javascript
jquery仿QQ商城带左右按钮控制焦点图片切换滚动效果
2013/06/27 Javascript
原始的js代码和jquery对比体会
2013/09/10 Javascript
关闭浏览器窗口弹出提示框并且可以控制其失效
2014/04/15 Javascript
判断字符串的长度(优化版)中文占两个字符
2014/10/30 Javascript
Javascript BOM学习小结(六)
2015/11/26 Javascript
javascript加减乘除的简单实例
2016/07/12 Javascript
浅谈jQuery中的eq()与DOM中element.[]的区别
2016/10/28 Javascript
深入理解Angular中的依赖注入
2017/06/26 Javascript
js 中rewrap-ajax.js插件实例代码
2017/10/20 Javascript
微信小程序网络封装(简单高效)
2018/08/06 Javascript
ECharts地图绘制和钻取简易接口详解
2019/07/12 Javascript
vue-cli3+typescript新建一个项目的思路分析
2019/08/06 Javascript
Vue2.X和Vue3.0数据响应原理变化的区别
2019/11/07 Javascript
vue+高德地图实现地图搜索及点击定位操作
2020/09/09 Javascript
原生js实现自定义消息提示框
2020/11/19 Javascript
[原创]Python入门教程5. 字典基本操作【定义、运算、常用函数】
2018/11/01 Python
Python多分支if语句的使用
2020/09/03 Python
JAVA代码查错题
2014/10/10 面试题
写一个方法1000的阶乘
2012/11/21 面试题
分厂厂长岗位职责
2013/12/29 职场文书
物流管理专业职业生涯规划书
2014/01/06 职场文书
初婚未育未抱养证明
2014/01/12 职场文书
一年级班主任寄语
2014/01/19 职场文书
财务会计毕业生个人求职信
2014/02/03 职场文书
《乌塔》教学反思
2014/02/17 职场文书
清扬洗发水广告词
2014/03/14 职场文书
2015年网络舆情工作总结
2015/07/24 职场文书
教导处教学工作总结
2015/08/12 职场文书
Go获取两个时区的时间差
2022/04/20 Golang