zoukankan      html  css  js  c++  java
  • php 去除数组中的空值

    array_filter函数的功能是利用回调函数来对数组进行过滤,一直都以为用回调函数才能处理,却没有发现手册下面还有一句,如果没有回调函数,那么默认就是删除数组中值为false的项目。

    <?php
    
    function filter($val){
        if ($val == '') {
            return false;
        } else {
            return true;
        }
    }
    
    $arr = array('red','blue','green', '', 'cyan', '', 'gray');
    var_dump(array_filter($arr));
    ?>
    
    $entry = array(
        0 => 'foo',
        1 => false,
        2 => -1,
        3 => null,
        4 => ''
    );
    
    print_r(array_filter($entry));
    

    foreach或者while的,利用这两个语法结构来删除数组中的空元素,简单代码如下:

    PHP代码

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

    而且自我感觉还挺不错,只是这样的效率并不高也曾经试过,先将$arr转为对象,然后利用对象的特性来删除,因为:foreach是将当前操作的数 组进行copy,每操作一下foreach,都是copy了一个变量,页面里面如果有太多的foreach,会是一个很大的消耗。

    在网上闲逛的时候,看到人有提示用array_filter,觉得很吃惊。打开手册瞅了一下,发现自己一直就守着个宝山却不知道如何使用。

    前望
  • 相关阅读:
    【MM 】采购合同成批维护
    【FICO 汇率】汇率
    【S4 MM】S4中继续使用MB系统事务代码(转)
    【MM 交货成本】Unplanned Delivery Cost
    Tracer Deployment UVALive
    The Best Path HDU
    Artwork Gym
    PTA 银行排队问题之单队列多窗口加VIP服务 队列+模拟
    Counting Cliques HDU
    Do not pour out HDU
  • 原文地址:https://www.cnblogs.com/ybbqg/p/2444055.html
Copyright © 2011-2022 走看看