zoukankan      html  css  js  c++  java
  • PHP函数对比 array_merge()与加号合并数组的区别

    首先准备两个数组,从数组索引类型分别讨论。

    (关联数组)数组索引为字符串索引时:

    $a = array('a' => 1, 'b' => 2, 'c' => 3);
    $b = array('b' => 5, 'c' => 6, 'd' => 7);
    print_r(array_merge($a,$b));
    // print
    
    Array
    (
        [a] => 1
        [b] => 5
        [c] => 6
        [d] => 7
    )
    
    字符串索引时,array_merge()后面的相同key会取代前面的值
    -----------------------------------------------
    print_r($a+$b);
    //print
    Array
    (
        [a] => 1
        [b] => 2
        [c] => 3
        [d] => 7
    )
    
    字符串索引时,+ 后面的数组在key已存在前面数组的key中,会被忽略掉
    
    

    (索引数组)数组索引为数字索引时:

    $a = array(1 => 1, 2 => 2, 3 => 3);
    $b = array(0 => 5, 1 => 6, 2 => 7);
    
    print_r(array_merge($a, $b));
    //print
    
    Array
    (
        [0] => 1
        [1] => 2
        [2] => 3
        [3] => 5
        [4] => 6
        [5] => 7
    )
    
    数字索引时,array_merge(),直接后面的数组追加到前面数组的后面,合并后的数组重新排序
    --------------------------------------------------
    print_r($a + $b);
    //print
    Array
    (
        [1] => 1
        [2] => 2
        [3] => 3
        [0] => 5
    )
    
    数字索引时,+号已经保持与字符串数组一样的秉性,后面数组的key是前面数组已存在key时,会被忽略。
    
    

    array_merge()函数合并非数组:

    $end = array("a" => 'bar');
    $start = "foo";
    print_r(array_merge($end,array($start)));  //强制转array,默认数字索引
    //print
    Array
    (
        [a] => bar
        [0] => foo
    )
    
    
  • 相关阅读:
    SpringCloud 天气预报系统 Quartz集成
    阿里云maven镜像库配置(gradle,maven)
    天气接口
    spring boot @ConditionalOnxxx相关注解总结
    为什么不应该使用ZooKeeper做服务发现
    Spring cloud系列十四 分布式链路监控Spring Cloud Sleuth
    Spring Cloud Sleuth Zipkin
    Spring Cloud Sleuth Zipkin
    标签系统
    简述 OAuth 2.0 的运作流程
  • 原文地址:https://www.cnblogs.com/xinxinmifan/p/array_merge_and_plus_using.html
Copyright © 2011-2022 走看看