php - 如何删除空的关联数组条目

标签 php multidimensional-array associative-array

我有一个关联数组:$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]

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

谢谢

最佳答案

试试这个,有点奇怪,但是:

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

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

编辑(测试和工作):

<?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));
?>

关于php - 如何删除空的关联数组条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17923356/

相关文章:

javascript - php 信息未通过 session 和分页传递

php - PHP 中针对 LDAP 属性/关联数组的未定义索引警告?

php - 使用关联数组将记录从mysql动态显示到表中

prolog - 如何处理 Prolog 中的关联数组?

php - 如何检查 $_GET 参数是否存在但没有值?

PHP 页面无法正确呈现

c - 使用 typedef 时,二维数组如何在 C 中工作?

arrays - 如果提前声明数组,Bash 数组赋值会失败

php - "an established connection"什么时候应该在 CodeIgniter 中为真?

php - 在php中从mysql简单格式化多维数组