老生常谈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 相关文章推荐
PHP4 与 MySQL 交互使用
Oct 09 PHP
PHP中开发XML应用程序之基础篇 添加节点 删除节点 查询节点 查询节
Jul 09 PHP
解析Linux下Varnish缓存的配置优化
Jun 20 PHP
php设计模式之简单工厂模式详解
Sep 04 PHP
解决nginx不支持thinkphp中pathinfo的问题
Jul 21 PHP
深入浅析用PHP实现MVC
Mar 02 PHP
PHP常用排序算法实例小结【基本排序,冒泡排序,快速排序,插入排序】
Feb 07 PHP
详解php 使用Callable Closure强制指定回调类型
Oct 26 PHP
PHP实现的多进程控制demo示例
Jul 22 PHP
php操作redis常见方法示例【key与value操作】
Apr 14 PHP
tp5.1 框架数据库高级查询技巧实例总结
May 25 PHP
Mac系统下搭建Nginx+php-fpm实例讲解
Dec 15 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.MVC的模板标签系统(一)
2006/09/05 PHP
php的控制语句
2006/10/09 PHP
PHP编程中字符串处理的5个技巧小结
2007/11/13 PHP
Gregarius中文日期格式问题解决办法
2008/04/22 PHP
PHP实现时间轴函数代码
2011/10/08 PHP
利用谷歌 Translate API制作自己的翻译脚本
2014/06/04 PHP
php+mysql实现用户注册登陆的方法
2015/01/03 PHP
在PHP 7下安装Swoole与Yar,Yaf的方法教程
2017/06/02 PHP
jquery+php实现搜索框自动提示
2014/11/28 Javascript
jQuery源码解读之removeClass()方法分析
2015/02/20 Javascript
jQuery获取剪贴板内容的方法
2016/06/16 Javascript
Google 地图叠加层实例讲解
2016/08/06 Javascript
AngularJs Scope详解及示例代码
2016/09/01 Javascript
Bootstrap媒体对象学习使用
2017/03/07 Javascript
JS实现课堂随机点名和顺序点名
2017/03/09 Javascript
jquery easyui如何实现格式化列
2017/07/30 jQuery
轻量级JS Cookie插件js-cookie的使用方法
2018/03/22 Javascript
JS实现网站吸顶条
2020/01/08 Javascript
[00:35]DOTA2上海特级锦标赛 MVP.Phx战队宣传片
2016/03/04 DOTA
Python中的time模块与datetime模块用法总结
2016/06/30 Python
深入理解Python中的*重复运算符
2017/10/28 Python
python 统计一个列表当中的每一个元素出现了多少次的方法
2018/11/14 Python
python_opencv用线段画封闭矩形的实例
2018/12/05 Python
Python下简易的单例模式详解
2019/04/08 Python
python实现函数极小值
2019/07/10 Python
对python中基于tcp协议的通信(数据传输)实例讲解
2019/07/22 Python
Form表单及django的form表单的补充
2019/07/25 Python
python爬虫中采集中遇到的问题整理
2020/11/27 Python
python 基于UDP协议套接字通信的实现
2021/01/22 Python
高街生活方式全球在线商店:AZBRO
2017/08/26 全球购物
JD Sports马来西亚:英国领先的运动鞋和运动服饰零售商
2018/03/13 全球购物
计算机毕业生求职信
2014/06/10 职场文书
应届大学生求职信
2014/07/20 职场文书
活动总结书怎么写
2015/05/11 职场文书
感谢信的技巧及范例
2019/05/15 职场文书
Python可视化神器pyecharts绘制水球图
2022/07/07 Python