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保存和输出文件
Oct 09 PHP
一个简单的自动发送邮件系统(一)
Oct 09 PHP
php通用防注入程序 推荐
Feb 26 PHP
php数据库配置文件一般做法分享
Jul 07 PHP
PHP编译安装中遇到的两个错误和解决方法
Aug 20 PHP
php接口数据加密、解密、验证签名
Mar 12 PHP
php循环table实现一行两列显示的方法
Jun 04 PHP
PHP关联数组实现根据元素值删除元素的方法
Jun 26 PHP
详解PHP执行定时任务的实现思路
Dec 21 PHP
Yii的Srbac插件用法详解
Jul 14 PHP
PHP文件系统管理(实例讲解)
Sep 19 PHP
PHP实现获取url地址中顶级域名的方法示例
Jun 05 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环境配置 php5 MySQL5 apache2 phpmyadmin安装与配置图文教程
2007/03/16 PHP
php xml文件操作实现代码(二)
2009/03/20 PHP
php设置编码格式的方法
2013/03/05 PHP
PHP同时连接多个mysql数据库示例代码
2014/03/17 PHP
php实现文件下载代码分享
2014/08/19 PHP
php实现二叉树中和为某一值的路径方法
2018/10/14 PHP
PHP 数组黑名单/白名单实例代码详解
2019/06/04 PHP
TP5(thinkPHP5)框架使用ajax实现与后台数据交互的方法小结
2020/02/10 PHP
JavaScript的Cookies
2008/01/16 Javascript
JavaScript中的apply()方法和call()方法使用介绍
2012/07/25 Javascript
jQuery实现表头固定效果的实例代码
2013/05/24 Javascript
javascript 函数及作用域总结介绍
2013/11/12 Javascript
详解js跨域原理以及2种解决方案
2015/12/09 Javascript
浅谈JavaScript的自动垃圾收集机制
2016/12/15 Javascript
vue 简单自动补全的输入框的示例
2018/03/12 Javascript
浅谈webpack4 图片处理汇总
2018/09/12 Javascript
微信小程序实现的canvas合成图片功能示例
2019/05/03 Javascript
layui写后台表格思路和赋值用法详解
2019/11/14 Javascript
JavaScript实现点击自制菜单效果
2021/02/02 Javascript
[04:16]DOTA2英雄梦之声_第09期_斧王
2014/06/21 DOTA
在Django的模型中添加自定义方法的示例
2015/07/21 Python
python用户管理系统的实例讲解
2017/12/23 Python
python找出完数的方法
2018/11/12 Python
python 缺失值处理的方法(Imputation)
2019/07/02 Python
Pycharm编辑器功能之代码折叠效果的实现代码
2020/10/15 Python
python的scipy.stats模块中正态分布常用函数总结
2021/02/19 Python
基于DOM+CSS3实现OrgChart组织结构图插件
2016/03/02 HTML / CSS
HTML5实现无刷新修改URL的方法
2019/11/14 HTML / CSS
C语言笔试题
2014/09/04 面试题
AJAX都有哪些有点和缺点
2012/11/03 面试题
执行力心得体会
2013/12/31 职场文书
领导视察欢迎词
2014/01/15 职场文书
宪法宣传周工作方案
2014/05/26 职场文书
元旦趣味活动方案
2014/08/22 职场文书
利用python做表格数据处理
2021/04/13 Python
基于Go Int转string几种方式性能测试
2021/04/28 Golang