空数组不会“空”

时间:2011-07-05 04:29:49

标签: php arrays

我有一个数组,里面装满了MySQL。有时没有任何数据,所以我尝试用empty()检查是否应该删除emtpy数组或是否包含任何数据。我尝试使用空数组但empty()给了我一个“完整”数组,即使print_r显示为空。

Array ( [0] => Array ( [0] => Array ( ) ) )
Array ( [0] => Array ( [0] => Array ( ) ) )

4 个答案:

答案 0 :(得分:2)

对于array(),FALSE,NULL,',0和'0',

empty()将返回true。空数组将为空(),但是包含空数组的数组不会。

答案 1 :(得分:1)

假设$ array是你的例子中的数组,试试这个:

$array = array_filter( $array );
if ( empty( $array ) )
{
    // do what you want
}

答案 2 :(得分:0)

要做我想做的事情你要做的事情,你需要编写一个递归函数,遍历你的多维数组的每个级别的每个项目,并检查empty()的值每个元素。我认为这就是你所追求的目标。

function isEmpty($array){
    $empty = true;
    foreach($array as $value){
        if(is_array($value)){
            if(!isEmpty($value)) $empty = false;
        }else{
            if(!empty($value)) $empty = false;
        }
    }
    return $empty;
}

然后在你的数组上运行isEmpty()。

答案 3 :(得分:0)

我相信BraedenP是正确的。

但是,一个更优秀的解决方案是在创建该数组的位置进行更改。在该上下文中,检测SQL结果集中的行数是否为0应该非常容易。