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进行MySQL删除记录操作代码
Jun 07 PHP
php 获得汉字拼音首字母的函数
Aug 01 PHP
PHP 中关于ord($str)&amp;gt;0x80的详细说明
Sep 23 PHP
mantis安装、配置和使用中的问题小结
Jul 14 PHP
yii操作session实例简介
Jul 31 PHP
php缓冲输出实例分析
Jan 05 PHP
PHP程序员的技术成长规划
Mar 25 PHP
完美解决phpdoc导出文档中@package的warning及Error的错误
May 17 PHP
PHP中FTP相关函数小结
Jul 15 PHP
ThinkPHP中session函数详解
Sep 14 PHP
php基于curl实现的股票信息查询类实例
Nov 11 PHP
redis查看连接数及php模拟并发创建redis连接的方法
Dec 15 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压缩html网页代码(清除空格,换行符,制表符,注释标记)
2012/04/02 PHP
PHP实现的封装验证码类详解
2013/06/18 PHP
使用PHPExcel操作Excel用法实例分析
2015/03/26 PHP
php识别翻转iphone拍摄的颠倒图片
2018/05/17 PHP
Laravel 队列使用的实现
2019/01/08 PHP
php接口隔离原则实例分析
2019/11/11 PHP
JS实现时间格式化的方式汇总
2013/10/16 Javascript
jQuery实现多按钮单击变色
2014/11/27 Javascript
javascript实现鼠标放上后下边对应内容变换的效果
2015/08/06 Javascript
基于BootStrap栅格栏系统完成网站底部版权信息区
2016/12/23 Javascript
Vue系列:通过vue-router如何传递参数示例
2017/01/16 Javascript
vue.js的手脚架vue-cli项目搭建的步骤
2017/08/30 Javascript
vue和webpack打包项目相对路径修改的方法
2018/06/15 Javascript
在vue.js中使用JSZip实现在前端解压文件的方法
2018/09/05 Javascript
Nodejs监控事件循环异常示例详解
2019/09/22 NodeJs
解决vue刷新页面以后丢失store的数据问题
2020/08/11 Javascript
javascript实现点击产生随机图形
2021/01/25 Javascript
[55:03]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第二场 11.20
2020/11/20 DOTA
python模块之re正则表达式详解
2017/02/03 Python
python中yaml配置文件模块的使用详解
2018/04/27 Python
解决pyttsx3无法封装的问题
2018/12/24 Python
如何更优雅地写python代码
2019/07/02 Python
详解python路径拼接os.path.join()函数的用法
2019/10/09 Python
药学专业大专生的自我评价
2013/12/12 职场文书
超市中秋节促销方案
2014/03/21 职场文书
大型会议策划方案
2014/05/17 职场文书
党支部四风整改方案
2014/10/25 职场文书
2015年党员自评材料
2014/12/17 职场文书
2014年加油站站长工作总结
2014/12/23 职场文书
学校三八妇女节活动总结
2015/02/06 职场文书
2015暑期工社会实践报告
2015/07/13 职场文书
Python包管理工具pip的15 个使用小技巧
2021/05/17 Python
浅谈Python 中的复数问题
2021/05/19 Python
24年收藏2000多部退役军用电台
2022/02/18 无线电
MySql重置root密码 --skip-grant-tables
2022/04/11 MySQL
python标准库ElementTree处理xml
2022/05/20 Python