在PHP中可以使用array_merge函数和两个数组相加array+array的方式进行数组合并,但两者效果并不相同,下面为大家介绍两者具体的使用区别.

区别如下:

当下标为数值时,array_merge()不会覆盖掉原来的值,但array+array合并数组则会把最先出现的值作为最终结果返回,而把后面的数组拥有相同键名的那些值“抛弃”掉(不是覆盖).

当下标为字符时,array+array仍然把最先出现的值作为最终结果返回,而把后面的数组拥有相同键名的那些值“抛弃”掉,但array_merge()此时会覆盖掉前面相同键名的值.

例子1:

代码:

$arr1 = ['PHP', 'apache'];

$arr2 = ['PHP', 'MySQl', 'HTML', 'CSS'];

$mergeArr = array_merge($arr1, $arr2);

$plusArr = $arr1 + $arr2;

var_dump($mergeArr);

var_dump($plusArr);

结果

$mergeArr:

array (size=6)

  0 => string 'PHP' (length=3)

  1 => string 'apache' (length=5)

  2 => string 'PHP' (length=3)

  3 => string 'MySQl' (length=5)

  4 => string 'HTML' (length=4)

  5 => string 'CSS' (length=3)

$plusArr

array (size=4)

  0 => string 'PHP' (length=3)

  1 => string 'apache' (length=5)

  2 => string 'HTML' (length=4)

  3 => string 'CSS' (length=3

例子2:

代码:

$arr1 = ['PHP', 'a'=>'MySQl'];

$arr2 = ['PHP', 'MySQl', 'a'=>'HTML', 'CSS'];

$mergeArr = array_merge($arr1, $arr2);

$plusArr = $arr1 + $arr2;

var_dump($mergeArr);

var_dump($plusArr);

结果

$mergeArr:

array (size=5)

  0 => string 'PHP' (length=3)

  'a' => string 'HTML' (length=4)

  1 => string 'PHP' (length=3)

  2 => string 'MySQl' (length=5)

  3 => string 'CSS' (length=3)

$plusArr

array (size=4)

  0 => string 'PHP' (length=3)

  'a' => string 'MySQl' (length=5)

  1 => string 'MySQl' (length=5)

  2 => string 'CSS' (length=3)

例子3:

代码:

$arr1 = ['PHP', 'a'=>'MySQl','6'=>'CSS'];

$arr2 = ['PHP', 'MySQl', 'a'=>'HTML', 'CSS'];

$mergeArr = array_merge($arr1, $arr2);

$plusArr = $arr1 + $arr2;

var_dump($mergeArr);

var_dump($plusArr);

结果:

$mergeArr

array (size=6)

  0 => string 'PHP' (length=3)

  'a' => string 'HTML' (length=4)

  1 => string 'CSS' (length=3)

  2 => string 'PHP' (length=3)

  3 => string 'MySQl' (length=5)

  4 => string 'CSS' (length=3)

$plusArr

array (size=5)

  0 => string 'PHP' (length=3)

  'a' => string 'MySQl' (length=5)

  6 => string 'CSS' (length=3)

  1 => string 'MySQl' (length=5)

  2 => string 'CSS' (length=3)

相信通过上边三个例子大家已经非常清楚array_merge()函数和array+array数组相加的区别了吧。

【本文由“lhbryant”发布,2017年05月23日】

PHP中array_merge函数与array+array的区别的更多相关文章

  1. php中array_merge函数

    php中array_merge函数 一.array_merge简介 (PHP 4, PHP 5, PHP 7) array_merge — 合并一个或多个数组 说明¶ array array_merg ...

  2. MySQL中时间函数NOW()和SYSDATE()的区别

    mysql中日期函数还是比较常用的.主要有NOW()和SYSDATE()两种,虽然都表示当前时间,但使用上有一点点区别. NOW()取的是语句开始执行的时间,SYSDATE()取的是动态的实时时间. ...

  3. PHP合并数组array_merge函数运算符加号与的区别

    两个的区别是:1.数组键名为数字键名时,要合并的两个数组中有同名数字KEY的时候,使用array_merge()不会覆盖掉原来的值,而使用“+”合并数组则会把最先出现的值作为最终结果返回,而把后面的数 ...

  4. JS中匿名函数$(function(){ })和(function(){})()的区别

    “$(function(){ });” Jquery语法的匿名函数,用于存放操作DOM对象的代码,执行其中代码时DOM对象已存在: (通过这样就可以在页面加载完成时通过ajax再异步加载一些数据) “ ...

  5. Python中function(函数)和methon(方法)的区别

    在Python中,对这两个东西有明确的规定: 函数function —— A series of statements which returns some value to a caller. It ...

  6. js中字符串函数indexOf与search的区别

    IndexOf()方法是用来判断一个字符串是否存在于一个更长的字符串中.从长字符串左端到右端来搜索,如果存在该子字符串就返回它所处的位置(即索引).如果在被搜索的字符串没有找到要查找的字符串返回-1. ...

  7. C#中回调函数的使用方法和区别

    归纳来说有两种方式,一种是委托型回调,另一种是接口型回调 委托型回调 委托型回调包括纯委托型和事件型,他们的实现方式是通过公开成员注入的方式,其中纯委托型还可以用构造函数注入.方法注入的方式 接口型回 ...

  8. PHP中array_merge和array相加的区别分析

    今天处理一个这样的问题:如何获取字符键名相同值不同的两个数组值集合,用array_merge和数组相加都不可行,让我认真比较了下PHP中array_merge和array相加的区别 首先来看看键名是s ...

  9. PHP中array_merge和array+array的区别

    在PHP中可以使用array_merge函数和两个数组相加array+array的方式进行数组合并,但两者效果并不相同,区别如下: 当下标为数值时,array_merge()不会覆盖掉原来的值,但ar ...

随机推荐

  1. 老李推荐:第8章3节《MonkeyRunner源码剖析》MonkeyRunner启动运行过程-启动AndroidDebugBridge 3

    首先它通过查找JVM中的System Property来找到"com.android.monkeyrunner.bindir"这个属性的值,记得前面小节运行环境初始化的时候在mon ...

  2. 手机自动化测试:appium源码分析之bootstrap九

    手机自动化测试:appium源码分析之bootstrap九   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣, ...

  3. 实现QQ、微信、新浪微博和百度第三方登录(Android Studio)

    前言: 对于大多数的APP都有第三方登录这个功能,自己也做过几次,最近又有一个新项目用到了第三方登录,所以特意总结了一下关于第三方登录的实现,并拿出来与大家一同分享: 各大开放平台注册账户获取AppK ...

  4. Java环境----JDK开发环境搭建及环境变量配置

    1.啥是jdk? jdk的是java development kit的缩写,意思是java程序开发的工具包. jdk的版本,一共有三种,标准版(j2se),企业版(j2ee),移动设备版(j2me). ...

  5. SQL SERVER:CASE判断空,错误一例

     -----错误判断------------------------------------------------------------------------------------ SELEC ...

  6. 免费视频播放器videojs中文教程

    Video.js是一款web视频播放器,支持html5和flash两种播放方式.更多关于video.js的介绍,可以访问官方网站介绍,我之前也写过一篇关于video.js的使用心得,有兴趣的可以点这里 ...

  7. 23(java/io/data_io)

    package test_ppt;import java.io.*;public class test_ppt{ public static void main(String args[]) thro ...

  8. delphi 7 mdi子窗体。。。无法更改以命令对象为源的记录集对象的 ActiveConnection 属性。

    问题是这样的 我做了一个小程序 把 adoconnection放到了主窗体  连接的是access数据库; 新建了一个子窗体继承自FBase  新建了一个pubulic方法 qrySearch 实现了 ...

  9. 【react学习】关于react框架使用的一些细节要点的思考

    ( _(:3 」∠)_给园友们提个建议,无论是API文档还是书籍,一定要多看几遍!特别是隔一段时间后,会有意想不到的收获的)   这篇文章主要是写关于学习react中的一些自己的思考:   1.set ...

  10. Java设计模式:工厂模式

    问题提出 Java的工厂模式与现实生活中的工厂的模型是很相似的.工厂是用来做什么?当然是用来生成产品.因此在Java的工厂模式的关键点就是如何描述好产品和工厂这2个角色之间的关系. 下面来仔细描述一下 ...