zoukankan      html  css  js  c++  java
  • PHP foreach 循环使用"&$val" 地址符“&”

    在熟悉项目代码的时候 看到这样的foreach 循环:

                 foreach($data as &$val){

                                         ....

                 }

      第一次看到循环里面使用了地址符“&”,我印象中的这个符号 是直接取到了这个变量的地址。

    然后里面的循环操作,相对来说是高大上了点,比如说下面的例子:

          我现在有一个需求 给一个数组添加一个元素,经常会有这种需求
         商品统计:商品价格、商品销售数量
        需求是 想统计出商品总收入  

         $arr = array( array('price' =>10 , 'count' => 100 ),  array('price' =>20 , 'count' => 90 )  )

       不用再用一个新的数组来存放结果 这里直接插入到旧的数组 变成新的数组

        foreach ($arr as &$val) {

              $val['total']=$val['price']*$val['count'];

       }

    其实和下面的代码没啥区别:

      foreach ($arr as $k=>$val) {
          $arr[$k]['total']=$val['price']*$val['count'];
       }

    但是就觉得逼格可能高点。

    PHP删除数组中空值的方法介绍

    笨方法:

    <?php   
    foreach( $arr as $k=>$v){   
        if( !$v )   
            unset( $arr[$k] );   
    }   
    ?>

    array_filter函数的功能是利用回调函数来对数组进行过滤,一直都以为用回调函数才能处理,却没有发现手册下面还有一句,

    如果没有回调函数,那么默认就是删除数组中值为false的项目。

    <?php   

    $entry = array(   
                 0 => 'foo',   
                 1 => false,   
                 2 => -1,   
                 3 => null,   
                 4 => ''  
              );   

    print_r(array_filter($entry));   
    ?>

    输出值为:

    Array   
    (   
        [0] => foo   
        [2] => -1   
    )  

    所以说手册是个好东西,可惜我没看

  • 相关阅读:
    window 7系统环境同时安装window xp系统,形成双系统
    工作感悟
    数据湖框架选型很纠结?一文了解Apache Hudi核心优势
    mysql数据库设计-规则
    maven中多个子模块的构建顺序
    EXTJS3.0 表单元素TextField datefield 设置只读并改背景颜色为灰色
    MySQL5.7的账号回收权限
    哲学王子-复旦博导王德峰教授:阅读与哲学思考
    abseil 的 cmake 方式编译
    [javascript] ie下audio不支持一些媒体类型
  • 原文地址:https://www.cnblogs.com/yszr/p/9092641.html
Copyright © 2011-2022 走看看