如何删除空的关联数组条目 [英] How to remove empty associative array entries

查看:267
本文介绍了如何删除空的关联数组条目的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个关联数组:$csv_arr

Array
(
    [0] => Array
        (
            [Enfalac] => alpha linolenic acid 300 mg
            [Enfapro] => alpha linolenic acid 200 mg
        )

    [1] => Array
        (
            [Enfalac] => arachidonic acid 170 mg
            [Enfapro] => 
        )

    [2] => Array
        (
            [Enfalac] => 
            [Enfapro] => 
        )

    [3] => Array
        (
            [Enfalac] => calcium 410 mg
            [Enfapro] => calcium 550 mg
        )
)

如何删除所有完全空白的条目(例如$csv_arr[2]),但保留部分条目(例如$csv_arr[1]

How can I remove all completely empty entries such as $csv_arr[2] but preserve partial entries such as $csv_arr[1]

我已经尝试过$csv_arr = array_filter(array_map('array_filter', $csv_arr));,但这会删除空元素:$csv_arr[1]['Enfapro']

I've tried $csv_arr = array_filter(array_map('array_filter', $csv_arr)); but this removes the empty element: $csv_arr[1]['Enfapro']

Thx

推荐答案

尝试一下,有点奇怪,但是:

Try this, a little weird, but :

array_filter($csv_arr, function($v){return array_filter($v) == array();});

完全未经测试,我不记得这是否是正确的语法,但它可以正常工作.

Completely untested and I don't remember if this is the proper syntax or not for closures, but it could work.

编辑(经过测试并且可以正常工作):

Edit (tested and working):

<?php
$csv_arr = array(
    0 => array(
            'Enfalac' => 'alpha linolenic acid 300 mg',
            'Enfapro' => 'alpha linolenic acid 200 mg'
        ),

    1 =>  array(
            'Enfalac' => 'arachidonic acid 170 mg',
            'Enfapro' => ''
        ),

    2 =>  array(
            'Enfalac' => '',
            'Enfapro' => ''
        ),

    3 =>  array(

            'Enfalac' => 'calcium 410 mg',
            'Enfapro' => 'calcium 550 mg'
        )
);
$c = function($v){
    return array_filter($v) != array();
};
var_dump(array_filter($csv_arr, $c));
?>

这篇关于如何删除空的关联数组条目的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆