老生常谈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 UTF8 文件的签名问题
Oct 30 PHP
PHP 截取字符串专题集合
Aug 19 PHP
PHP学习之数组值的操作
Apr 17 PHP
php多个字符串替换成同一个的解决方法
Jun 18 PHP
PHP防范SQL注入的具体方法详解(测试通过)
May 09 PHP
php数组操作之键名比较与差集、交集赋值的方法
Nov 10 PHP
discuz图片顺序混乱解决方案
Jul 29 PHP
php批量删除操作(数据访问)
May 23 PHP
PHP中类型转换 ,常量,系统常量,魔术常量的详解
Oct 26 PHP
详解在YII2框架中使用UEditor编辑器发布文章
Nov 02 PHP
Laravel 框架基于自带的用户系统实现登录注册及错误处理功能分析
Apr 14 PHP
PHP 使用位运算实现四则运算的代码
Mar 09 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 win下Socket方式发邮件类
2009/08/21 PHP
php实现保存submit内容之后禁止刷新
2014/03/19 PHP
跟我学Laravel之视图 &amp; Response
2014/10/15 PHP
PHP实现的json类实例
2015/07/28 PHP
PHP针对字符串开头和结尾的判断方法
2016/07/11 PHP
php str_replace替换指定次数的方法详解
2017/05/05 PHP
PHP实现计算器小功能
2020/08/28 PHP
HTTP状态代码以及定义(解释)
2007/02/02 Javascript
代码精简的可以实现元素圆角的js函数
2007/07/21 Javascript
JQuery 网站换肤功能实现代码
2009/11/02 Javascript
一个简单的JS鼠标悬停特效具体方法
2013/06/17 Javascript
jquery查找tr td 示例模拟
2014/05/08 Javascript
js点击列表文字对应该行显示背景颜色的实现代码
2015/08/05 Javascript
详解node.js搭建代理服务器请求数据
2017/04/08 Javascript
详解从新建vue项目到引入组件Element的方法
2017/08/29 Javascript
vue给input file绑定函数获取当前上传的对象完美实现方法
2017/12/15 Javascript
浅谈React组件之性能优化
2018/03/02 Javascript
JS正则表达式常见用法实例详解
2018/06/19 Javascript
jQuery解析json格式数据示例
2018/09/01 jQuery
Vue.js 中的 v-show 指令及用法详解
2018/11/19 Javascript
Vue.js 无限滚动列表性能优化方案
2019/12/02 Javascript
JavaScript设计模式之策略模式实现原理详解
2020/05/29 Javascript
Python中format()格式输出全解
2019/04/12 Python
python SocketServer源码深入解读
2019/09/17 Python
Python安装及Pycharm安装使用教程图解
2019/09/20 Python
通过代码实例解析Pytest运行流程
2020/08/20 Python
Django rest framework分页接口实现原理解析
2020/08/21 Python
HTML5 FileReader对象的具体使用方法
2020/05/22 HTML / CSS
Kathmandu美国网站:新西兰户外运动品牌
2019/03/23 全球购物
21岁生日感言
2014/02/27 职场文书
四风查摆剖析材料
2014/10/10 职场文书
房屋租赁合同补充协议
2014/10/11 职场文书
党员民主生活会材料
2014/12/15 职场文书
2016廉政教育学习心得体会
2016/01/25 职场文书
三十年再续同学情倡议书
2019/11/27 职场文书
Python Django搭建文件下载服务器的实现
2021/05/10 Python