如何检查数组中的所有键是否在PHP中都为空值?

时间:2011-06-14 06:08:26

标签: php arrays

我有一个数组

$array = array('key1' => null, 'key2' => null, 'key3' => null, 'key4' => null);

我想确定所有数组键是否都有空值,如果是,则返回false。上面的例子应该返回false,因为它没有任何值。但是如果一个或多个键具有任何值,则它应该返回true,例如下面的示例为真。

$array = array('key1', 'key2' => value2, 'key3', 'key4' => value4);

7 个答案:

答案 0 :(得分:42)

假设你实际上是指像

这样的数组
array('key1' => null, 'key2' => null, 'key3' => null, 'key4' => null)

答案就是

if (!array_filter($array)) {
    // all values are empty (where "empty" means == false)
}

答案 1 :(得分:4)

您的假设不正确。 array('key1', 'key2', 'key3', 'key4')0..3范围内有4个值和键。

array('key1', 'key2' => value2, 'key3', 'key4' => value4)的值为key1(键0),键key2,值key3(键1)和键key4

答案 2 :(得分:2)

@Blagovest对于您的错误问题陈述是正确的。

$allEmpty = true;
foreach( $array as $key => $val ) {
    if( isset( $array[$key] ) ) {
        $allEmpty = false;
        break;
    }
}

// Do what you will with $allEmpty

答案 3 :(得分:1)

我认为你的意思是检查所有键是否都是数字或者至少有一个是字符串:

$ok = false;
foreach( array_keys($array) as $key ){
    if(is_string($key)){
        $ok=true;
        break;
    }
}

return $ok;

答案 4 :(得分:0)

$flag = 0;
foreach($array as $keys)
{
        if(!isempty($keys)) {
        $flag++;
        }
}

if(flag > 0)
{
    echo "Array not empty!";
}
else {
    echo "Array empty!";
}

应该工作。

答案 5 :(得分:0)

$array = array('key1' => null, 'key2' => null, 'key3' => null, 'key4' => null);

答案是

$filterArray = array_filter($array);

if(count($filterArray) == 0){
    return false;
}else{
    return true;
}

答案 6 :(得分:0)

简单

count(array_filter($array)) != count($array)

如果是多维

count(array_filter(array_values($array))) != count(array_values($array))