老生常谈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 相关文章推荐
smarty实例教程
Nov 19 PHP
PHP定时自动生成静态HTML的实现代码
Jun 20 PHP
php数据库密码的找回的步骤
Jan 12 PHP
php中替换字符串中的空格为逗号','的方法
Jun 09 PHP
ThinkPHP3.1新特性之对Ajax的支持更加完善
Jun 19 PHP
ThinkPHP页面跳转success与error方法概述
Jun 25 PHP
Ubuntu中启用php的mail()函数并解决发送邮件速度慢问题
Mar 27 PHP
PHP滚动日志的代码实现
Jun 10 PHP
Symfony2中被遗弃的getRequest()方法分析
Mar 17 PHP
浅析Yii2 GridView 日期格式化并实现日期可搜索教程
Apr 22 PHP
PHP7扩展开发教程之Hello World实现方法示例
Aug 03 PHP
php正则表达式使用方法整理集合
Jan 31 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新手上路(四)
2006/10/09 PHP
使用图灵api创建微信聊天机器人
2015/07/23 PHP
PHP更安全的密码加密机制Bcrypt详解
2017/06/18 PHP
js点击事件链接的问题解决
2014/04/25 Javascript
用js模拟struts2的多action调用示例
2014/05/19 Javascript
安装使用Mongoose配合Node.js操作MongoDB的基础教程
2016/03/01 Javascript
前端学习笔记style,currentStyle,getComputedStyle的用法与区别
2016/05/28 Javascript
jQuery中使用animate自定义动画的方法
2016/05/29 Javascript
浅谈JavaScript的计时器对象
2016/12/26 Javascript
原生js实现鼠标跟随效果
2017/02/28 Javascript
bootstrap IE8 兼容性处理
2017/03/22 Javascript
详解Webpack多环境代码打包的方法
2018/08/03 Javascript
快速解决vue动态绑定多个class的官方实例语法无效的问题
2018/09/05 Javascript
js中的数组对象排序分析
2018/12/11 Javascript
JavaScript判断对象和数组的两种方法
2019/05/31 Javascript
JavaScript switch语句使用方法简介
2019/12/30 Javascript
JavaScript实现捕获鼠标坐标
2020/04/12 Javascript
js里面的变量范围分享
2020/07/18 Javascript
[01:38]DOTA2 2015国际邀请赛中国区预选赛 Showopen
2015/06/01 DOTA
跟老齐学Python之不要红头文件(1)
2014/09/28 Python
python列表list保留顺序去重的实例
2018/12/14 Python
Python里字典的基本用法(包括嵌套字典)
2019/02/27 Python
python3读取图片并灰度化图片的四种方法(OpenCV、PIL.Image、TensorFlow方法)总结
2019/07/04 Python
python 实现创建文件夹和创建日志文件的方法
2019/07/07 Python
python之openpyxl模块的安装和基本用法(excel管理)
2021/02/03 Python
德国运动鞋网上商店:Afew Store
2018/01/05 全球购物
GE设备配件:GE Appliance Parts(家电零件、配件和滤水器)
2018/11/28 全球购物
请编程遍历页面上所有 TextBox 控件并给它赋值为 string.Empty
2015/12/03 面试题
函授毕业个人自我评价
2014/02/20 职场文书
护士岗前培训自我评鉴
2014/02/28 职场文书
4S店售后客服自我评价
2014/04/09 职场文书
教师见习期自我鉴定
2014/04/28 职场文书
珍惜资源的建议书
2014/08/26 职场文书
2016年党员学习廉政准则心得体会
2016/01/20 职场文书
springboot + mongodb 通过经纬度坐标匹配平面区域的方法
2021/11/01 MongoDB
redis缓存存储Session原理机制
2021/11/20 Redis