如何检查数组是否包含所有错误值?

时间:2015-07-22 12:21:57

标签: php arrays

如何检查数组是否包含所有false值?

$arr  = array(false, false, false);
$arr2 = array(true, false, false, 123);

check_false_array($arr);
true
check_false_array($arr2);
false

修改:不仅允许true / false

3 个答案:

答案 0 :(得分:1)

使用array_filter()empty()array_filter()将删除所有错误值,如果empty()返回true,则表示您拥有所有错误值。

function check_false_array(array $array) {
    return empty(array_filter($array, 'strlen'));
}

var_export(check_false_array(array(false, false, false)));
echo "\n";
var_export(check_false_array(array(false, true, false)));
echo "\n";
var_export(check_false_array(array(0,0,0)));

Demo

如果您希望0被视为false,请删除'strlen'array_filter()的回调。

Demo

答案 1 :(得分:0)

您可以array_filter使用回调功能与false& empty要检查。

$arr  = array(false, false, false);
$check = array_filter($arr, function($x) {
  return ($x !== false);
});

if(empty($check)) // $check will be empty if all the value is false (only false)

答案 2 :(得分:-1)

这两个函数将检查你需要什么,假设数组只能有" true"或"假"没有别的

function isFalseArray($arr){
    foreach($arr as $a){
        if($a == "true")
           return false;
    }
    return true;
}

function isTrueArray($arr){
    foreach($arr as $a){
        if($a == "false")
           return false;
    }
    return true;
}
相关问题