array_merge函数的注意事项

  array_merge — 合并一个或多个数组 

  array_merge() 将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。

  如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面。

  如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引。

  array_merge will return NULL if any of the arguments are NULL。

  例如:

    $array1 = NULL;
    $array2 = array(1 => "data");
    $result = array_merge($array1, $array2);

    var_dump($result);结果为NULL,所以在写SQL语句获取结果集的时候要注意,if(empty($resut)){$result=array();} 赋值为空数组后再和其他的数组进行合并。

  例子:

        //新的逻辑
        $agent_id=$location_model->where("id=‘$location_id‘")->getField(‘agent_id‘);
        //再查询已授权的运营商(要排除授权商家)
        if(!empty($agent_id)){
            $tpl_list2=$tpl_model->where("status=1 and agent_range=2 and agent_id in ($agent_id) and supplier_id=‘‘")->field($field)->order(‘id desc‘)->select();
        }
        if(empty($tpl_list2)){
            $tpl_list2=array();
        }

        //再查询授权全部运营商
        $tpl_list3=$tpl_model->where("status=1 and agent_range=1")->field($field)->order(‘id desc‘)->select();
        if(empty($tpl_list3)){
            $tpl_list3=array();
        }
     //array_merge will return NULL if any of the arguments are NULL
        $tpl_list_merge=array_merge($tpl_list1,$tpl_list2,$tpl_list3);

    

时间: 2024-10-14 11:40:53

array_merge函数的注意事项的相关文章

PHP合并数组array_merge函数运算符加号与的区别

两个的区别是:1.数组键名为数字键名时,要合并的两个数组中有同名数字KEY的时候,使用array_merge()不会覆盖掉原来的值,而使用"+"合并数组则会把最先出现的值作为最终结果返回,而把后面的数组拥有相同键名的那些值"抛弃"掉(注意:不是覆盖而是保留最先出现的那个值).例子: $array1 = array(1=>'0′);$array2 = array(1=> "data");$result1 = $array2 + $arr

关于完成端口IOCP异步接收连接函数AcceptEx注意事项

AcceptEx方法有一个参数dwReceiveDataLength,指明了在收到连接后是否需要收到第一包数据才返回.需要注意的是,如果 dwReceiveDataLength=0,则当接收到一个连接后立即返回,如果dwReceiveDataLength不等于0,则在接收到连接后,必须 等到客户端发来第一包数据才返回.可根据实际需要设定此参数.这就是有人说明明我已经建立连接,为何服务端收不到ACCEPT事件的原因. 特别要注意,当dwReceiveDataLength设置为0后,在使用m_lpf

有关php array_merge函数的用法

分享下array_merge函数的用法. PHP中合并数组分成两种情况:1.如果这两个数组中有相同的字符串键名 2.如果这两个数组中有相同的数值键名 重新认识php array_merge函数 今天因一个Bug重新审视了下array_merge()这个函数.定义:array_merge — 合并一个或多个数组规范:array array_merge(array $array1 [, array $...])说明:1. 将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面.2. 如

函数模板注意事项

一.模板重载 ①和常规重载一样,被重载的模板的函数特征标必须不同. ②并非所有的模板参数都必须是模板参数类型.例如: template<class T> void swap(T& a,T& b); template<class T> void swap(T* a,T* b,int n);//第三个参数类型为具体类型int,而不是通用类型 二.显示具体化 对于某些类型的参数,我们的算法可能略有不同,比如:对于一个结构体,虽然将一个结构体赋给另一个结构体是允许的,但是,

PHP array_merge() 函数

实例 把两个数组合并为一个数组: 定义和用法 array_merge() 函数把一个或多个数组合并为一个数组. 提示:您可以向函数输入一个或者多个数组. 注释:如果两个或更多个数组元素有相同的键名,则最后的元素会覆盖其他元素. 注释:如果您仅向 array_merge() 函数输入一个数组,且键名是整数,则该函数将返回带有整数键名的新数组,其键名以 0 开始进行重新索引(参见下面的实例 1). 提示:该函数与 array_merge_recursive() 函数之间的不同是在处理两个或更多个数组

深入解析array_merge函数的用法 php

array_merge是我们用来合并数组使用最多的函数:下面就来深入解析array_merge的用法:第四点是个坑需注意: 1:如果数组中有相同的字符串键名:则该键名后面的值覆盖前面的值: 如果想让前面的值覆盖后面:则可以使用+号: $a=array(     'a'=>'first a',     'b'=>'b'     ); $b=array(     'c'=>'c',     'a'=>'second a'     ); $result=array_merge($a,$b

php 中array_merge函数特性(其中一个参数为null)

需要合并两个从数据库中读取的数组,用php中的array_merge函数,最后结果总是为null,通过dump,发现这是由于其中的一个数组是null造成的.演示如下: <?php $arr1 =null; $arr2 = array('tom','linken'); $arr3 = array_merge($arr1,$arr2); var_dump($arr3); 运行的结果为null. 解决办法是可以在进行merge的时候把两个参数进行array强制类型转化: 如下: <?php $arr

论普通函数和箭头函数的区别以及箭头函数的注意事项、不适用场景

箭头函数是ES6的API,相信很多人都知道,因为其语法上相对于普通函数更简洁,深受大家的喜爱.就是这种我们日常开发中一直在使用的API,大部分同学却对它的了解程度还是不够深... 普通函数和箭头函数的区别: 箭头函数的this指向规则: 1. 箭头函数没有prototype(原型),所以箭头函数本身没有this let a = () =>{}; console.log(a.prototype); // undefined 2. 箭头函数的this指向在定义的时候继承自外层第一个普通函数的this

在ThinkPHP的common.php文件里添加公共函数的注意事项

注意事项: 1.函数不要加public访问控制权限,因为默认就是public的. 2.当你写好了一个新函数后在本地运行发现没有问题,但是在生产环境运行会报错:找不到这个函数,解决方法是删除runtime文件夹.