zoukankan      html  css  js  c++  java
  • php array_merge和运算符+

      其实很多时候我都很疑惑为什么同维度的数组不能直接使用运算+直接进行相加,然后结果就是两个数组合并的在一起的新结果,这个就有点跟array_merge合并函数类似了,接下来就来看下这两种合并的方式到底有些什么样的区别?(下面采取对比的方式来看问题)

    一、运算符+

    # 第一种情况
    $arr1 = array('a', 'b');
    $arr2 = array('c', 'd');
    var_dump($arr1 + $arr2);
    //返回的结果:array('a', 'b')
    
    # 第二种情况
    $arr1 = array('a', 'b');
    $arr2 = array(3=>'c', 4=>'d');
    var_dump($arr1 + $arr2);
    //返回的结果:array(0=>'a', 1=>'b', 3=>'c', 4=>'d')

    说明:两个一维数组使用运算符+其实是可以相加的

              1.两个数组相加,key值相同的元素结果显示前一个数组的值(注意不是咱们通常说的后边的值覆盖掉前边同key的值);键名相同,数组相加会将最先出现的值作为结果(不区分是否是数字key还是字符串的key);

              2.存在key值不同的元素,这时候相加才会把不同key值对应的元素合并在一个新的数组内

    二、array_merge

    # 第一种情况
    $arr1 = array('a', 'b');
    $arr2 = array('c', 'd');
    var_dump(array_merge($arr1, $arr2));
    //返回的结果:array(0=>'a', 1=>'b', 2=>'c', 3=>'d')
    
    # 第二种情况
    $arr1 = array('a', 'b');
    $arr2 = array(3=>'c', 4=>'d');
    var_dump(array_merge($arr1, $arr2));
    //返回的结果:array(0=>'a', 1=>'b', 2=>'c', 3=>'d')
    
    # 第三种情况
    $arr1 = array('a', 'b', 'name' => 'e');
    $arr2 = array('name'=>'c', 4=>'d');
    var_dump(array_merge($arr1, $arr2));
    //返回的结果:array(0=>'a', 1=>'b', 'name'=>'c', 2=>'d')

    说明:1.第一种情况说明同key的不会被覆盖,而是追加到先出现的值的后边,并且key是根据前边存在的key自增的

               2.第二种情况说明只要不是字符串的key,合并后key都会重新的设置,也是根据前边存在的key自增

               3.第三种情况说明如果存在字符串的key,字符串的key值相同的话,后边出现的值会覆盖掉前边出现的值

  • 相关阅读:
    vue滑块拖拽校验
    vue和原生自动聚焦
    vue实现bar左右拖拽
    fastclick插件使用
    三大家族易忘点和案例
    移动端调试工具chrome+devtools
    restful 与 webapi 详解
    .NET Core 中依赖注入框架详解 Autofac
    .NET Core 对象( Transient、Scope、Singleton )生命周期详解 (对象创建以及释放)
    C# 通过DataSet 获取SQL 存储过程返回的多个结果集(tables)
  • 原文地址:https://www.cnblogs.com/zengguowang/p/8269730.html
Copyright © 2011-2022 走看看