如何清除多维数组

时间:2012-02-06 10:55:44

标签: php

抱歉,这可能是一个非常简单的答案,但我已经尝试了几次google并且我现在正在调整。我想清除以下数组($ list)。这是print_r:

Array ( [0] => Array ( 
           [0] => 1 
           [1] => Tomato 
           [2] =>
        ) 
        [1] => Array ( 
           [0] => 
        ) 
      ) 

我希望摆脱番茄之后的[2] =>和第二个值[1] => Array ( [0] => )可能会有十个或更多像马牙这样的麦芽汁。

谢谢!

2 个答案:

答案 0 :(得分:3)

function clear_array(&$array)
{
    foreach ( $array as $k=>$v )
    {
        if ( is_array($v) )
        {
            clear_array($array[$k]);
        } else if ( $v === '' || $v === null ) {
            unset($array[$k]);
        }
    }
}

答案 1 :(得分:1)

以下评论示例array_filter文档:

function array_filter_recursive($array, $callback = null) {
    foreach ($array as $key => & $value) {
        if (is_array($value)) {
            $value = array_filter_recursive($value, $callback);
        }
        else {
            if ( ! is_null($callback)) {
                if ( ! $callback($value)) {
                    unset($array[$key]);
                }
            }
            else {
                if ( ! (bool) $value) {
                    unset($array[$key]);
                }
            }
        }
    }
    unset($value);

    return $array;
}