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,觉得很吃惊。打开手册瞅了一下,发现自己一直就守着个宝山却不知道如何使用。

    前望
  • 相关阅读:
    Windows进程/线程创建过程
    固件安全研究
    区块链安全研究的总结
    CoTreatAsClass一些注意事项
    Ring3 读取SSDT
    User Mode Scheduling
    首次异常和二次异常
    offer终于有着落了
    AtomBombing
    Retn
  • 原文地址:https://www.cnblogs.com/ybbqg/p/2444055.html
Copyright © 2011-2022 走看看