zoukankan      html  css  js  c++  java
  • 深入解析array_merge函数的用法 php (转)

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

     1 $a=array(
     2     'a'=>'first a',
     3     'b'=>'b'
     4     );
     5 $b=array(
     6     'c'=>'c',
     7     'a'=>'second a'
     8     );
     9 $result=array_merge($a,$b);
    10 var_dump($result);
    11 $result=$a+$b;
    12 var_dump($result);

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

    1 Array
    2 (
    3     [a] => second a
    4     [b] => b
    5     [c] => c
    6 )

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

     1 $a=array(
     2     0=>'zero_a', 
     3     2=>'two_a', 
     4     3=>'three_a'
     5     );
     6 $b=array(
     7     1=>'one_b', 
     8     3=>'three_b', 
     9     4=>'four_b'
    10     );
    11 $result=array_merge($a,$b);
    12 var_dump($result);

    输出如下

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

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

    1 $a=array(
    2     1=>1,
    3     3=>3,
    4     6=>6
    5     );
    6 $result=array_merge($a);
    7 var_dump($result);

    输出如下

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

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

    1 $a=array(
    2     1=>1,
    3     6=>6
    4     );
    5 $b='';
    6 $result=array_merge($a,$b);
    7 var_dump($result);

    输出如下

    1 null

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

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

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

  • 相关阅读:
    质数检测器
    《视觉SLAM十四讲》学习日志(一)——预备知识
    C++类的介绍
    Python数据类型解析(基础篇)
    括号匹配详解
    哈夫曼树编码
    分治之归并,快速排序
    洛谷p2216 多次单调队列,扫描矩阵中的最大值减去最小值最的固定大小子矩阵
    洛谷p1886滑动窗口最大最小值 双单调队列
    洛谷p1725 露琪诺 单调队列优化的DP
  • 原文地址:https://www.cnblogs.com/njflash/p/10236729.html
Copyright © 2011-2022 走看看