• 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值相同的话,后边出现的值会覆盖掉前边出现的值

  • 相关阅读:
    zabbix自动发现 url 以及对http返回状态码监控实现 告警
    iOS 开发者账号到期续费流程
    iOS 开发 -----公司测试打包上传流程
    go语言 二叉树
    GO 语言队列实现
    GO 语言常用排序
    go 语言实现栈原理
    循环链表实现原理及运用约瑟夫环实例
    双向链表实现原理
    单向链表实现原理
  • 原文地址:https://www.cnblogs.com/zengguowang/p/8269730.html
Copyright © 2020-2023  润新知