在PHP中从多维数组中删除项



我需要删除多维数组中的空项。有没有一种简单的方法可以让我轻松地删除空的项目?我只需要保留2010-06和2010-07。

非常感谢!

Array
(
    [2010-01] => Array
        (
            [2010-03] => Array
                (
                    [0] => 
                )
            [2010-04] => Array
                (
                    [0] => 
                )
            [2010-06] => Array
                (
                    [0] => stdClass Object
                        (
                            [data_test] => value
                            [date] => 2010-05-01 12:00:00
                        )
                )
            [2010-07] => Array
                (
                    [0] => stdClass Object
                        (
                            [data_test] => value
                            [date] => 2010-05-01 12:00:00
                        )
                )
        )
)

尝试这个函数。这会解决你的问题。

 function cleanArray($array)
{
    if (is_array($array))
    {
        foreach ($array as $key => $sub_array)
        {
            $result = cleanArray($sub_array);
            if ($result === false)
            {
                unset($array[$key]);
            }
            else
            {
                $array[$key] = $result;
            }
        }
    }
    if (empty($array))
    {
        return false;
    }
    return $array;
}

array_filter不能处理这个数组所以试试这个自定义函数

<?php
$array =array(
    20 => array(
        20 => array(
            0=> ''
        ),
        10 => array(
            0=> 'hey'
        )       
    )
);
function array_remove_empty($arr){
    $narr = array();
    while(list($key, $val) = each($arr)){
        if (is_array($val)){
            $val = array_remove_empty($val);
            // does the result array contain anything?
            if (count($val)!=0){
                // yes :-)
                $narr[$key] = $val;
            }
        }
        else {
            if (trim($val) != ""){
                $narr[$key] = $val;
            }
        }
    }
    unset($arr);
    return $narr;
}
print_r(array_remove_empty($array));
?> 

在这里找到了答案

相关内容

  • 没有找到相关文章

最新更新