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


Posted in PHP onMay 25, 2017

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

今天在翻阅别人博客时看到了对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 result
Array
(
  [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 result

Array
(
  [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 result
Array
(
  [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 result
Array
(
  [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 result
Array
(
  [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 result
Array
(
  [a] => 1
  [b] => 2
  [c] => 6
)

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

PHP 相关文章推荐
整合了前面的PHP数据库连接类~~做成一个分页类!
Nov 25 PHP
PHP中开发XML应用程序之基础篇 添加节点 删除节点 查询节点 查询节
Jul 09 PHP
php DOS攻击实现代码(附如何防范)
May 29 PHP
探讨php define()函数及defined()函数使用详解
Jun 09 PHP
函数中使用require_once问题深入探讨 优雅的配置文件定义方法推荐
Jul 02 PHP
php将html转成wml的WAP标记语言实例
Jul 08 PHP
学习php设计模式 php实现装饰器模式(decorator)
Dec 07 PHP
PHP引用的调用方法分析
Apr 25 PHP
PHP 接入微信扫码支付总结(总结篇)
Nov 03 PHP
thinkPHP5.0框架独立配置与动态配置方法
Mar 17 PHP
PHP实现的Redis多库选择功能单例类
Jul 27 PHP
php实现与python进行socket通信的方法示例
Aug 30 PHP
Yii框架实现多数据库配置和操作的方法
May 25 #PHP
Yii框架扩展CGridView增加导出CSV功能的方法
May 24 #PHP
[原创]php正则删除html代码中class样式属性的方法
May 24 #PHP
PHP 年月日的三级联动实例代码
May 24 #PHP
php验证码生成器
May 24 #PHP
php批量修改表结构实例
May 24 #PHP
php 人员权限管理(RBAC)实例(推荐)
May 24 #PHP
You might like
PHP实现将textarea的值根据回车换行拆分至数组
2015/06/10 PHP
phpcms配置列表页以及获得文章发布时间
2017/07/04 PHP
浅谈laravel-admin的sortable和orderby使用问题
2019/10/03 PHP
在laravel框架中使用model层的方法
2019/10/08 PHP
由prototype_1.3.1进入javascript殿堂-类的初探
2006/11/06 Javascript
js精度溢出解决方案
2012/12/02 Javascript
jQuery实现用方向键控制层的上下左右移动
2013/01/13 Javascript
使用js显示当前时间示例
2014/03/02 Javascript
php和js对数据库图片进行等比缩放示例
2014/04/28 Javascript
jQuery中fadein与fadeout方法用法示例
2016/09/16 Javascript
微信小程序 图片等比例缩放(图片自适应屏幕)
2016/11/16 Javascript
AngularJs表单验证实例代码解析
2016/11/29 Javascript
vuejs父子组件之间数据交互详解
2017/08/09 Javascript
[js高手之路]图解javascript的原型(prototype)对象,原型链实例
2017/08/28 Javascript
Vuejs 单文件组件实例详解
2018/02/09 Javascript
vue实现的微信机器人聊天功能案例【附源码下载】
2019/02/18 Javascript
H5+css3+js搭建带验证码的登录页面
2020/10/11 Javascript
[58:25]VP vs RNG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
python函数形参用法实例分析
2015/08/04 Python
查看TensorFlow checkpoint文件中的变量名和对应值方法
2018/06/14 Python
Python列表(list)所有元素的同一操作解析
2019/08/01 Python
Django ORM 常用字段与不常用字段汇总
2019/08/09 Python
python 字典有序并写入json文件过程解析
2019/09/30 Python
python selenium实现发送带附件的邮件代码实例
2019/12/10 Python
Python实现密码薄文件读写操作
2019/12/16 Python
TensorFlow——Checkpoint为模型添加检查点的实例
2020/01/21 Python
Python无头爬虫下载文件的实现
2020/04/02 Python
圣诞树世界:Christmas Tree World
2019/12/10 全球购物
优良学风班申请材料
2014/02/13 职场文书
2014厂务公开实施方案
2014/02/17 职场文书
毕业生政审意见范文
2015/06/04 职场文书
奔腾年代观后感
2015/06/09 职场文书
实践论读书笔记
2015/06/29 职场文书
Html分层的box-shadow效果的示例代码
2021/03/30 HTML / CSS
分享一些Java的常用工具
2021/06/11 Java/Android
table不让td文字溢出操作方法
2022/12/24 HTML / CSS