关键词搜索

源码搜索 ×
×

php多维数组去除空元素

发布2020-11-23浏览554次

详情内容

<?php
/**
 * 去除多维数组中的空值
 * @author
 * @return mixed
 * @param $arr 目标数组
 * @param array $values 去除的值  默认 去除  '',null,false,0,'0',[]
 */
function filter_array($arr, $values = ['', null, false, 0, '0',[]]) {
    foreach ($arr as $k => $v) {
        if (is_array($v) && count($v)>0) {
            $arr[$k] = filter_array($v, $values);
        }
        foreach ($values as $value) {
            if ($v === $value) {
                unset($arr[$k]);
                break;
            }
        }
    }
    return $arr;
}

$arr = array(
    array('name'=>"zhangsan",'age'=>18,'hobby'=>"reading"),
    array('name'=>"lisi",'age'=>19,'hobby'=>""),
    array()
);
var_dump($arr);
$values = ['', null, false, 0, '0',[]];
var_dump(filter_array($arr, $values));

    处理前:

    array(3) {
      [0]=>
      array(3) {
        ["name"]=>
        string(8) "zhangsan"
        ["age"]=>
        int(18)
        ["hobby"]=>
        string(7) "reading"
      }
      [1]=>
      array(3) {
        ["name"]=>
        string(4) "lisi"
        ["age"]=>
        int(19)
        ["hobby"]=>
        string(0) ""
      }
      [2]=>
      array(0) {
      }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    处理后:

    array(2) {
      [0]=>
      array(3) {
        ["name"]=>
        string(8) "zhangsan"
        ["age"]=>
        int(18)
        ["hobby"]=>
        string(7) "reading"
      }
      [1]=>
      array(2) {
        ["name"]=>
        string(4) "lisi"
        ["age"]=>
        int(19)
      }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    如果要删除hobby值为空的数据,可以使用array_filter函数。

    /**
     * 使用array_filter函数
     */
    $arr2 = array_filter($arr, function ($value) {
        return !empty($value['hobby']);
    });
    var_dump($arr2);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    效果:

    array(1) {
      [0]=>
      array(3) {
        ["name"]=>
        string(8) "zhangsan"
        ["age"]=>
        int(18)
        ["hobby"]=>
        string(7) "reading"
      }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    原文链接:
    https://www.cnblogs.com/phpshen/p/6027388.html

    参考文章地址:
    https://www.cnblogs.com/yehuisir/p/13576568.html

    相关技术文章

    点击QQ咨询
    开通会员
    返回顶部
    ×
    微信扫码支付
    微信扫码支付
    确定支付下载
    请使用微信描二维码支付
    ×

    提示信息

    ×

    选择支付方式

    • 微信支付
    • 支付宝付款
    确定支付下载