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
    )
    
    
  • 相关阅读:
    例3-7 统计字符
    大一第四周
    例3-5 四则运算
    MyBatis 查询缓存
    MyBatis 延迟加载
    Mybatis 关联查询
    Mybatis 动态SQL
    MyBatis mapper动态代理
    MyBatis 增删改查
    MyBatis 框架搭建
  • 原文地址:https://www.cnblogs.com/xinxinmifan/p/array_merge_and_plus_using.html
Copyright © 2011-2022 走看看