array_merge是我们用来合并数组使用最多的函数; 
下面就来深入解析array_merge的用法; 
第四点是个坑需注意; 
1:如果数组中有相同的字符串键名; 
则该键名后面的值覆盖前面的值; 
如果想让前面的值覆盖后面; 
则可以使用+号;

 $a=array(
'a'=>'first a',
'b'=>'b'
);
$b=array(
'c'=>'c',
'a'=>'second a'
);
$result=array_merge($a,$b);
var_dump($result);
$result=$a+$b;
var_dump($result);

使用 array_merge 保留了second a 输出如下

 Array
(
[a] => second a
[b] => b
[c] => c
)

使用+号 则保留了first_a 输出如下

 $a=array(
0=>'zero_a',
2=>'two_a',
3=>'three_a'
);
$b=array(
1=>'one_b',
3=>'three_b',
4=>'four_b'
);
$result=array_merge($a,$b);
var_dump($result);

输出如下

 Array
(
[0] => zero_a
[1] => two_a
[2] => three_a
[3] => one_b
[4] => three_b
[5] => four_b
)

3:如果只传入一个数组;并且键名是数字;则格式化键名;

 $a=array(
1=>1,
3=>3,
6=>6
);
$result=array_merge($a);
var_dump($result);

输出如下

 Array
(
[0] => 1
[1] => 3
[2] => 6
)

4:如果传的参数中有一个不是数组 
则返回null 
此处需要注意 
在开发过程中 
我们可能需要把两次查询的数据合并成一个数组 
如果有一个查询为空 
那么使用array_merge函数合并的结果就是null; 
我曾多次被null所坑而写此篇博客重要的原因也是因为此;

 $a=array(
1=>1,
6=>6
);
$b='';
$result=array_merge($a,$b);
var_dump($result);

输出如下

 null

因此;在不确定需要array_merge的数组是否有空值的时候;直接使用(array)强制转数组;上面的代码就可以改成如下形式

 $result=array_merge((array)$a,(array)$b);

本文为白俊遥原创文章,转载无需和我联系,但请注明来自白俊遥博客http://baijunyao.com

深入解析array_merge函数的用法 php (转)的更多相关文章

  1. 转:从编译链接过程解析static函数的用法

    关于static函数的用法 就像我们熟知的那样,变量可以分全局的和局部的,函数也可以分全局的和局部的. 比如说,在一个工程的common.h中定义了一个全局变量 int test;那么在整个工程的作用 ...

  2. (转)解析PHP中ob_start()函数的用法

    本篇文章是对PHP中ob_start()函数的用法进行了详细的分析介绍,需要的朋友参考下     ob_start()函数用于打开缓冲区,比如header()函数之前如果就有输出,包括回车/空格/换行 ...

  3. arguments.callee 调用函数自身用法----JSON.parse()和JSON.stringify()前端js数据转换json格式

    arguments.callee 调用函数自身用法 arguments.callee 在哪一个函数中运行,它就代表哪个函数. 一般用在匿名函数中. 在匿名函数中有时会需要自己调用自己,但是由于是匿名函 ...

  4. (转载)PHP array_merge() 函数

    (转载)http://www.w3school.com.cn/php/func_array_merge.asp PHP Array 函数 定义和用法 array_merge() 函数把两个或多个数组合 ...

  5. Delphi之通过代码示例学习XML解析、StringReplace的用法(异常控制 good)

    *Delphi之通过代码示例学习XML解析.StringReplace的用法 这个程序可以用于解析任何合法的XML字符串. 首先是看一下程序的运行效果: 以解析这样一个XML的字符串为例: <? ...

  6. web报表工具FineReport常用函数的用法总结(日期和时间函数)

    web报表工具FineReport常用函数的用法总结(日期和时间函数) 说明:凡函数中以日期作为参数因子的,其中日期的形式都必须是yy/mm/dd.而且必须用英文环境下双引号(" " ...

  7. 根据MAC地址获取网络地址及ZDP_NwkAddrReq函数的用法

    1..对于设备需要获取本设备的网络地址和MAC地址: NLME_GetShortAddr()——返回本设备的16位网络地址 NLME_GetExtAddr()——  返回本设备的64位扩展地址 2.使 ...

  8. 详解php 获取文件名basename()函数的用法

    PHP 中basename()函数给出一个包含有指向一个文件的全路径的字符串,此函数返回基本的文件名,本篇文章收集了关于使用PHP basename()函数获取文件名的几篇文章,希望对大家理解使用PH ...

  9. C语言中getopt()和getopt_long()函数的用法

    一.参考文章 1.C语言中getopt()和getopt_long()函数的用法 2.linux 中解析命令行参数 (getopt_long用法) 二.调试经验

随机推荐

  1. [POI2009]Wie

    题目 BZOJ 虽然是解压题但也学到了简洁的码风 做法 \(dijkstra\)跑动规 My complete code #include<bits/stdc++.h> #include& ...

  2. jQuery自动轮播图片焦点图

    在线演示 本地下载

  3. python异步库

    https://github.com/aio-libs  异步库

  4. freemarker空值的处理

    FreeMarker的变量必须赋值,否则就会抛出异常.而对于FreeMarker来说,null值和不存在的变量是完全一样的,因为FreeMarker无法理解null值.FreeMarker提供两个运算 ...

  5. JSP的动态Include的静态Include

    1. 静态导入示例 先总结: 1:静态include是把被引入的文件拼接到本页面中,再做为一个整体来编译,返回结果给客户端. 动态include是分别编译本页面和被引入的页面,再把结果合成一个html ...

  6. java深入探究13-js,ajax

    链接:http://pan.baidu.com/s/1c2D0cAs 密码:uwm6 1.js 1)三种基本类型: var num=100; var str="哈哈"; var f ...

  7. HBase-存储-KeyValue格式

    HBase-存储-KeyValue格式 本质上,HFile中的每个KeyValue都是一个低级的字节数组,它允许零复制访问数据. KeyValue格式如下 该结构以两个分别表示键长度(Key Leng ...

  8. javascript 内置对象及常见API

    javascript 内置对象及常见API 2012-09-02 15:17 571人阅读 评论(0) 收藏 举报 javascript正则表达式文档浏览器urlstring Javascript内置 ...

  9. Codeforces Round #425 (Div. 2) D 树链剖分 + 树状数组维护区间

    一看就知道 可以LCA判断做 也可以树链剖分拿头暴力 然而快速读入和线段树维护区间会T70 于是只能LCA? 线段树的常数不小 于是需要另外一种办法来进行区间加减和查询区间和 就是使用树状数组 这个题 ...

  10. 爬虫之解析库-----re、beautifulsoup、pyquery

    一.介绍 Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式.Beautiful Soup会帮你 ...