老生常谈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扩展函数
Oct 09 PHP
我用php+mysql写的留言本
Oct 09 PHP
PHP6 先修班 JSON实例代码
Aug 23 PHP
如何在symfony中导出为CSV文件中的数据
Oct 06 PHP
又一个PHP实现的冒泡排序算法分享
Aug 21 PHP
php实现的支持imagemagick及gd库两种处理的缩略图生成类
Sep 23 PHP
PHP里8个鲜为人知的安全函数分析
Dec 09 PHP
搭建Vim为自定义的PHP开发工具的一些技巧
Dec 11 PHP
ThinkPHP静态缓存简单配置和使用方法详解
Mar 23 PHP
php实现的中秋博饼游戏之掷骰子并输出结果功能详解
Nov 06 PHP
php+ajax实现商品对比功能示例
Apr 13 PHP
thinkphp5实现微信扫码支付
Dec 23 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
phpinfo 系统查看参数函数代码
2009/06/05 PHP
PHP将DateTime对象转化为友好时间显示的实现代码
2011/09/20 PHP
PHP使用数组实现矩阵数学运算的方法示例
2017/05/29 PHP
visual studio code 调试php方法(图文详解)
2017/09/15 PHP
一个很简单的办法实现TD的加亮效果.
2006/06/29 Javascript
Javascript 写的简单进度条控件
2008/01/22 Javascript
轻轻松松学JS调试(不下载任何工具)
2010/04/14 Javascript
Javascript无参数和有参数类继承问题解决方法
2015/03/02 Javascript
jQuery模拟select实现下拉菜单功能
2016/06/20 Javascript
原生javascript 学习之js变量全面了解
2016/07/14 Javascript
CSS3 media queries结合jQuery实现响应式导航
2016/09/30 Javascript
node 利用进程通信实现Cluster共享内存
2017/10/27 Javascript
vue+iview+less+echarts实战项目总结
2018/02/22 Javascript
JS继承实现方法及优缺点详解
2020/09/02 Javascript
Python lxml模块安装教程
2015/06/02 Python
详解MySQL数据类型int(M)中M的含义
2016/11/20 Python
python爬虫自动创建文件夹的功能
2018/08/01 Python
使用pycharm设置控制台不换行的操作方法
2019/01/19 Python
对python周期性定时器的示例详解
2019/02/19 Python
Python图像处理二值化方法实例汇总
2020/07/24 Python
python,Java,JavaScript实现indexOf
2020/09/09 Python
python实现三种随机请求头方式
2021/01/05 Python
HEMA英国:荷兰原创设计
2018/08/28 全球购物
博朗(Braun)俄罗斯官方商店:德国小家电品牌
2019/09/24 全球购物
医学院毕业生自荐信
2013/11/08 职场文书
通信工程毕业生求职信
2013/11/16 职场文书
园林施工员岗位职责
2013/12/11 职场文书
信息专业个人的自我评价
2013/12/27 职场文书
学生自我评价范文
2014/02/02 职场文书
经典广告词大全
2014/03/14 职场文书
小学生节约用水倡议书
2014/05/15 职场文书
2014年图书室工作总结
2014/12/09 职场文书
2014年行政执法工作总结
2014/12/11 职场文书
小学科学教学计划
2015/01/21 职场文书
2015年小学体育工作总结
2015/05/22 职场文书
Nginx 根据URL带的参数转发的实现
2021/04/01 Servers