微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决如何检查数组中的所有键在PHP中是否具有空值?

| 我有一个数组
$array = array(\'key1\' => null,\'key2\' => null,\'key3\' => null,\'key4\' => null);
我想确定是否所有数组键都为空值,如果是,则返回false。上面的示例应返回false,因为它没有任何值。但如果一个或多个键具有任何值,则它应返回true,例如,以下示例为true。
$array = array(\'key1\',\'key2\' => value2,\'key3\',\'key4\' => value4);
    

解决方法

        假设您实际上是指一个像
array(\'key1\' => null,\'key2\' => null,\'key3\' => null,\'key4\' => null)
答案很简单
if (!array_filter($array)) {
    // all values are empty (where \"empty\" means == false)
}
    ,        您的假设是不正确的。
array(\'key1\',\'key2\',\'key3\',\'key4\')
有4个值,而键在
0..3
范围内。
array(\'key1\',\'key2\' => value2,\'key4\' => value4)
的值是
key1
(用键0),键
key2
,值
key3
(用键1)和键
key4
。     ,        @Blagovest关于您的错误陈述形式是正确的。
$allEmpty = true;
foreach( $array as $key => $val ) {
    if( isset( $array[$key] ) ) {
        $allEmpty = false;
        break;
    }
}

// Do what you will with $allEmpty
    ,        我认为您的意思是检查所有键都是数字键还是至少一个键是字符串:
$ok = false;
foreach( array_keys($array) as $key ){
    if(is_string($key)){
        $ok=true;
        break;
    }
}

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

if(flag > 0)
{
    echo \"Array not empty!\";
}
else {
    echo \"Array empty!\";
}
应该管用。     ,        
$array = array(\'key1\' => null,\'key4\' => null);
答案是
$filterArray = array_filter($array);

if(count($filterArray) == 0){
    return false;
}else{
    return true;
}
    ,        简单
count(array_filter($array)) != count($array)
如果是多维的
count(array_filter(array_values($array))) != count(array_values($array))
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。