• php数组合并:array_merge与 “+”


    PHP中数组合并有两种方式:array_merge 与 “+”,使用方式如下:

    $arr =array_merge($arr1 ,$arr2);

    $arr =$arr1 + $arr2 ;

    两种方式看似相同,但使用中 坑 还是不少的。

    看下面的例子:

    <?php
    
    $arr1=array(3,3476,123,45,45,'a'=>79);
    $arr2=array(40,74,435,86,34,3432,'a'=>88);
    print_r($arr1+$arr2);
     

    结果如下

    image

      结论

    使用“+”用于数组合并时,不论是数字索引还是关联索引:

    不同的键值元素被合并进一个数组,

    相同的键值元素以前者为准,即不会被后者同键的值覆盖

    使用场景:两个拥有不同键值的数组,希望原有键值被保留

    再来看 array_merge();

    <?php
    
    $arr1=array(3,3476,123,45,45,'a'=>79);
    $arr2=array(40,74,435,86,34,3432,'a'=>88);
    print_r(array_merge($arr1,$arr2));
     

    结果如下:

    image

    结论

    使用“array_merge”用于数组合并时:

    原有的数字索引全部会被抛弃 (不论是要合并的第一个数组还是第二个),其对应的所有值会放入一个新数组,重新索引。

    相同的关联键值元素会被后者同键的值覆盖,关联索引会被保留

    使用场景:不需要键值进行关联,只需要数组中的值

                    要合并的数组的键全部是字符串,而且字符串键都不重复。

    在php手册中看到一个好玩的地方,给大家看看

    image

    例子很明显,当数字键值超出 PHP_INT_MAX ,php 已经不认为这是数字索引了,而是字符串了。

    手册:http://www.php.net/manual/zh/function.array-merge.php

  • 相关阅读:
    如何用Django建立一个后台CRM系统02
    如何用Django建立一个后台CRM系统01
    多线程的UDP聊天器
    文件被导入时,能够直接执行的代码不需要被执行
    主动抛出异常
    python异常
    初始化动作只执行一次
    单例设计模式代码实现
    类的继承
    多态的案例演示
  • 原文地址:https://www.cnblogs.com/gaoj87/p/2933850.html
Copyright © 2020-2023  润新知