老生常谈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 相关文章推荐
COM in PHP (winows only)
Oct 09 PHP
PHP5 面向对象程序设计
Feb 13 PHP
用PHP查询搜索引擎排名位置的代码
Jan 05 PHP
PHP Socket 编程
Apr 09 PHP
PHP 观察者模式的实现代码
May 10 PHP
php读取二进制流(C语言结构体struct数据文件)的深入解析
Jun 13 PHP
php绘图之在图片上写中文和英文的方法
Jan 24 PHP
thinkPHP中多维数组的遍历方法
Jan 09 PHP
PHP实现获取毫秒时间戳的方法【使用microtime()函数】
Mar 01 PHP
php7 图形用户界面GUI 开发示例
Feb 22 PHP
PHP中关于php.ini参数优化详解
Feb 28 PHP
php中用unset销毁变量并释放内存
May 10 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
AM/FM收音机的安装与调试
2021/03/02 无线电
php常用ODBC函数集(详细)
2013/06/24 PHP
php实现以只读方式打开文件的方法
2015/03/16 PHP
基于jquery的Repeater实现代码
2010/07/17 Javascript
用js实现小球的自由移动代码
2013/04/22 Javascript
Javascript弹出窗口的各种方法总结
2013/11/11 Javascript
jQuery实现新消息闪烁标题提示的方法
2015/03/11 Javascript
jQuery定义背景动态切换效果的方法
2015/03/23 Javascript
JavaScript中的lastIndexOf()方法使用详解
2015/06/06 Javascript
基于javascript如何传递特殊字符
2015/11/30 Javascript
AngularJs中route的使用方法和配置
2016/02/04 Javascript
jquery.validate[.unobtrusive]和Bootstrap实现tooltip错误提示问题分析
2016/10/30 Javascript
javascript事件的传播基础实例讲解(35)
2017/02/14 Javascript
vue.js利用defineProperty实现数据的双向绑定
2017/04/28 Javascript
js 概率计算(简单版)
2017/09/12 Javascript
Javascript执行流程细节原理解析
2020/05/14 Javascript
vue 重塑数组之修改数组指定index的值操作
2020/08/09 Javascript
vue集成一个支持图片缩放拖拽的富文本编辑器
2021/01/29 Vue.js
python实现异步回调机制代码分享
2014/01/10 Python
python修改字典内key对应值的方法
2015/07/11 Python
将Python代码嵌入C++程序进行编写的实例
2015/07/31 Python
浅谈Python单向链表的实现
2015/12/24 Python
python3+PyQt5自定义视图详解
2018/04/24 Python
python3使用SMTP发送简单文本邮件
2018/06/19 Python
Python实现的对本地host127.0.0.1主机进行扫描端口功能示例
2019/02/15 Python
python opencv调用笔记本摄像头
2019/08/28 Python
详解python tkinter模块安装过程
2020/01/06 Python
《沙漠中的绿洲》教学反思
2014/04/24 职场文书
为什么阅读对所有年龄段的孩子都很重要?
2019/07/08 职场文书
新西兰:最新留学学习计划书写作指南
2019/07/15 职场文书
详解MongoDB的条件查询和排序
2021/06/23 MongoDB
关于PostgreSQL JSONB的匹配和交集问题
2021/09/14 PostgreSQL
正则表达式拆分url实例代码
2022/02/24 Java/Android
Python装饰器详细介绍
2022/03/25 Python
vue如何实现关闭对话框后刷新列表
2022/04/08 Vue.js
MySQL实现字段分割一行转多行的示例代码
2022/07/07 MySQL