当前位置:首页 > 日记 > 正文

老生常谈PHP数组函数array_merge | 必看篇

老生常谈PHP数组函数array_merge | 必看篇

很久之前就用到过这个函数,只不不过是简单的用用而已并没有做太深入的研究

今天在翻阅别人博客时看到了对array_merge的一些使用心得,故此自己来进行一次总结。

 

array_merge是将一个或者多个数组进行合并。

这个函数多用于在从数据库中取出的结果集的合并操作。

参数配置也很简单array_merge(arr1,arr2,arrN)

注意此处的参数必须为数组,否则会报错。

虽然,看起来很简单,但是其中也有不少的坑。

我们将从单数组和多数组的方向来进行分析。

 

1、多个数组进行合并操作(自定义键名):

从下面的运行结果可以看出$arr1与$arr2中键名相同的数据已被覆盖。

后面的数组会将前面数组中键相同的值覆盖。

<?php$arr1 = array('a'=>'1','b'=>'2');$arr2 = array('a'=>'1','b'=>'3','c'=>'2');$ret = array_merge($arr1,$arr2);print_r($ret);//run resultArray(  [a] => 1  [b] => 3  [c] => 2)

2.多个数组进行合并操作(自定义数字键名):

如果数组中的键名为数字时,会格式化键名并保留所有键值。

<?php$arr1 = array(1=>'1',2=>'2');$arr2 = array(1=>'1',2=>'3',6=>'2');$ret = array_merge($arr1,$arr2);print_r($ret);//run resultArray(  [0] => 1  [1] => 2  [2] => 1  [3] => 3  [4] => 2)

3.多个数组进行合并操作(无输入键名):

<?php$arr1 = array(1,2);$arr2 = array(1,2,6);$ret = array_merge($arr1,$arr2);print_r($ret);//run resultArray(  [0] => 1  [1] => 2  [2] => 1  [3] => 2  [4] => 6)

4.多数在合并操作(当一个数组为空时):

一个数组为空的这种操作很常见,无论哪个数组为空都会显示现有的值。

<?php$arr1 = array();$arr2 = array(1,2,6);$ret = array_merge($arr1,$arr2);print_r($ret);//run resultArray(  [0] => 1  [1] => 2  [2] => 6)

5.单数组操作:

单数组这种情况一般不会用到array_merge(),因为这个函数是用来合并数组的。

但是如果想恢复到原始的相关键名可以使用这个函数,但并不建议这么做。

因为有比它更好的函数可以使用array_values()

单数组操作其实和上面的2、3两种情况很类似,当键名为数字时则会格式化键名,否则直接显示。

<?php$arr1 = array(1=>1,3=>2,6=>6);$ret = array_merge($arr1);print_r($ret);//run resultArray(  [0] => 1  [1] => 2  [2] => 6)

6.当遇到两个数组合并的时候可以使用array_merge(),后面的数组会与前面的数组进行合并

但是想用前面的数组与后面的数组进行合并时怎么办?

难道把array_merge()中的两个数组换一下位置吗?其实有一个更简单的方法。

就是使用“+”来完成操作。

<?php$arr1 = array('a'=>1,'b'=>2);$arr2 = array('a'=>1,'b'=>3,'c'=>6);$ret = $arr1+$arr2;print_r($ret);//run resultArray(  [a] => 1  [b] => 2  [c] => 6)

以上这篇老生常谈PHP数组函数array_merge(必看篇)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

相关文章

PHP中利用sleep函数实现定时执行功

PHP中利用sleep函数实现定时执行功

功能实现,函数实现,定时执行,代码,电脑软件,在一些竞猜的网站中,如果我们需要做一个定时执行的功能,比如有一道题,在十秒之内要完成,否则显示“您已超时”,如果完成,则跳转到下一道题上面,而这中间有一个十秒的停顿,这样的功能是怎样实现的呢?在PHP…

Laravel中encrypt和decrypt的实现

Laravel中encrypt和decrypt的实现

方法,电脑软件,Laravel,encrypt,decrypt,前言Laravel 的加密机制使用 OpenSSL 提供 AES-256 和 AES-128 的加密,本文将详细介绍关于Laravel中encrypt和decrypt的实现,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。1. 使用方…

nodejs判断文件、文件夹是否存在及

nodejs判断文件、文件夹是否存在及

删除,方法,文件,是否存在,电脑软件,本文实例讲述了nodejs判断文件、文件夹是否存在及删除的方法。分享给大家供大家参考,具体如下:判断文件、文件夹是否存在需要使用nodejs的fs模块引入var fs= require("fs")判断的方法fs.exists(path, cal…

使用Node.js实现ORM的一种思路详解

使用Node.js实现ORM的一种思路详解

详解,思路,图文,电脑软件,Node,ORM是O和R的映射。O代表面向对象,R代表关系型数据库。二者有相似之处同时也各有特色。就是因为这种即是又非的情况,才需要做映射的。理想情况是,根据关系型数据库(含业务需求)的特点来设计数据库。同时根据面向对…

painter怎么绘制丛林树枝外观效果

painter怎么绘制丛林树枝外观效果

图形,绘制,树枝,丛林,外观,Painter中想要绘制一个松树枝,该怎么制作呢?下面我们就来看看使用painter绘制的方法。软件名称:Corel Painter(绘画软件) 2018 官方正式版(附注册机) 在线安装包 64位软件大小:994KB更新时间:2017-06-301、打开Painter…

Photoshop制作丛林蟒蛇缠绕啤酒魔

Photoshop制作丛林蟒蛇缠绕啤酒魔

蟒蛇,丛林,海报,风格,电脑软件,有一些小伙伴问我这个是怎么做出来的,所以发出来分享一下!我自己也还在学习当中,有些不好的地方请大家多多提点。最终效果 寻找一些素材。一、搭建场景。二、调色与混合模式。 三、酒瓶的调整。12 3 阅读全文四…

ps怎么设计动漫人物水彩画?

ps怎么设计动漫人物水彩画?

水彩画,动漫人物,电脑软件,ps,利用ps制作动漫人物水彩画效果,主要利用了滤镜里的艺术效果,现在就把制作的步骤和截图分享出来,希望对你有所帮助,同时也希望本经验能够起到抛砖引玉的作用。软件名称:Photoshop CS5 绿色版官方中文正式原版软件大…

photoshop打造镀金十足的立体文字

photoshop打造镀金十足的立体文字

文字特效,电脑软件,photoshop,今天小编为大家分享photoshop打造镀金十足的立体文字特效方法,教程比较基础,制作出来的文字非常漂亮,推荐到,一起来看看吧!最终效果图:步骤:1、新建一个画布800x800,背景填充为白色2、输入文字(IOU),字体udy Stout,加粗…

wps无法显示

wps无法显示

无法显示,电脑软件,wps,金山WPS是一款国产免费而又功能强大的办公软件,它完全可以替代微软OFFICE,但是也难免有一些小的问题,比如:在编写带图片的文档时,会发现有时候图片插入文档的某一位置的时候,图片不能完全显示,那么wps文档插入图片显示不全…

Excel剪贴板数据与选定区域的大小

Excel剪贴板数据与选定区域的大小

数据,剪贴板,区域,形状,大小,在Excel2007中,如果想复制某一个行或列,在新的文件或行、列中粘贴,那么系统会提示&ldquo;剪贴板数据与选定区域的大小形状不同,仍要粘贴吗?&rdquo;如果要复制粘贴很多行和列,那每次都有提示,都要点击一次&ldquo;确定&…

word背景怎么设置

word背景怎么设置

设置,背景,电脑软件,word,一个漂亮的word文档不可缺少背景,那么怎么设置word的背景呢,下面小编给大家详细介绍word背景图片怎么设置。设置步骤:在word菜单栏中找到&ldquo;格式&rdquo;&mdash;&mdash;背景&mdash;&mdash;填充效果,在填充效果中切…

win2003+iis6服务器设置排错集锦

win2003+iis6服务器设置排错集锦

排错,服务器设置,集锦,电脑软件,很多朋友在用IIS6架网站的时候遇到不少问题, 以下是在所知的2003iis碰见的一些问题,只要对着症状处理。服务器一定可以使用的。问题1:未启用父路径症状举例:Server.MapPath() 错误 'ASP 0175 : 80004005' 不允…