zoukankan      html  css  js  c++  java
  • array_merge Vs +=

    主要区别是两个或者多个数组中如果出现相同键名,键名分为字符串或者数字,需要注意
    1)键名为数字时,array_merge()不会覆盖掉原来的值,但+合并数组则会把最先出现的值作为最结果返回,而把后面的数组拥有相同键名的那些值“抛弃”掉(不是覆盖)
    2)键名为字符时,+仍然把最先出现的值作为最终结果返回,而把后面的数组拥有相同键名的那些值“抛弃”掉,但array_merge()此时会覆盖掉前面相同键名的值 

    ---- ----- ---- ---- ----- --- ----- -- ----- ----- --- ---

    说白了 是这样的

    1. 如果没有相同键值的数组元素 array_merge 或者 += 就是合并两个数组元素成一个数组

    2.1 如果是数字键值,那+=会抛弃后面的值 以前面的值为准 array_merge会让数组变得更大 把第二个数组的值附加到第一个数组的后面,即有可能出现一个数组中,有两个相同元素的数组。

    2.2 如果是字符键值,+=仍然是以前面的值为准,后面相同键值的值抛弃,但array_merge会以后面的值为准,直接覆盖前面的值,也就是抛弃前面的值。

    ----
    $arr1 = array(
        'a' => '1',
        'b' => '2',
        'c' => '3',
        'd' => '4',
        '1' => '5',
    );
    $arr2 = array(
        'a' => '8',
        'bb' => '2',
        'cc' => '3',
        'd' => '4',
        '1' => '63',
    );

    echo '<pre>';
    var_dump(array_merge($arr1, $arr2));
    echo '</pre>';

    array + 就是以前面的为准
    array_merge 就是后面的覆盖前面的 (字符下标)
    附加到后面(数字下标)

     

  • 相关阅读:
    [转] 关于hibernate的缓存使用
    周鸿祎,我的互联网方法论
    cwRsync window下的跨服务器的文件同步
    一个代价11万的bug
    批处理备份
    NodeJs环境部署
    spring接收参数
    @Autowired
    谈谈把网站迁移到阿里云的一些感想和其中遇到的一些问题
    HTML5+JS 《五子飞》游戏实现(一)规则
  • 原文地址:https://www.cnblogs.com/qinqiu/p/4512417.html
Copyright © 2011-2022 走看看