在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. 在centOS7.2安装配置zabbix监控

    zabbix由两部分组成,zabbix-server与可选的zabbix-agent.zabbix-server可以通过SNMP,ZABBIX-AGENT,PING,端口监视等方法提供对远程服务器/网 ...

  2. 【Android 系统开发】CyanogenMod 13.0 源码下载 编译 ROM 制作 ( 手机平台 : 小米4 | 编译平台 : Ubuntu 14.04 LTS 虚拟机)

                 分类: Android 系统开发(5)                                              作者同类文章X 版权声明:本文为博主原创文章 ...

  3. 一个web应用的诞生(10)--关注好友

    下面回到首页中,使用一个账户登录,你肯定已经注意到了这里的内容: 没错,现在都是写死的一些固定信息,其中分享数量很容易就可以获取,只需要修改首页模板: <p class="text-m ...

  4. plist文件的相关操作

    本文概要 1.plist文件的简介 2.在Xcode中创建plist文件 3.在Xcode中将plist文件转换成数组或者字典对象 4.将数组或者字典对象转换成plist文件并且存储 详细介绍 1.p ...

  5. C#---------------继承和多态初步

    继承:在程序中,如果一个类A:类B,这种机制就是继承. 子类可以继承父类的所有内容(成员)吗? 解析: 1.私有成员(属性和方法) 2.构造函数 3.final修饰过的方法,子类不能进行重写 3.访问 ...

  6. 给我的cnblogs主页做一个响应式布局模板

    在cnblogs,一直都是使用官方自带的那些模板,而且感觉也一直很良好!不过最近用手机搜索一些相关的技术资料,很多都来自cnblogs,有些博主的页面在和机端显得很好,有些则展示得不那么友好了……忽然 ...

  7. MySQL的loop循环函数的demo

    使用的工具是Navicat for MySQL. 在MySQL中用函数实现在字符串一后面循环拼接n个字符串二 delimiter $$ drop function if exists fun_addS ...

  8. java多线程基本概述(十三)——Executor

    1:Executor接口 public interface Executor 执行已提交的 Runnable 任务的对象.此接口提供一种将任务提交与每个任务将如何运行的机制(包括线程使用的细节.调度等 ...

  9. spring学习总结二-----面向切面编程(AOP)思想

    上一篇spring博客简总结了spring控制反转和依赖注入的相关思想知识点,这篇博文对spring的面向切的编程思想进行简单的梳理和总结. 一.面向切面的思想 与面向对象的纵向关系概念不同,面向切面 ...

  10. Amazon Alexa登录授权(Android)

    访问Alexa的API,必须要携带AccessToken,也就是必须要登录授权,本文主要记录Amazon Alexa在Android平台上的登录授权过程. 一.在亚马逊开发者平台注册应用 进入亚马逊开 ...