检查数组值?- 对或错 (PHP)

Check array value? - True or False (PHP)

提问人:Jan 提问时间:2/25/2017 更新时间:8/27/2021 访问量:3350

问:

我有一个数组,我在其中推送 true 或 false 值。而且我只想在数组完全为真或完全为真时执行下一个函数。但是因为它们不是字符串,所以我无法用 .in_array(...)

有谁知道我如何检查数组是完全正确的还是完全正确的?

问候和谢谢!:D

PHP 数组 boolean-expression

评论

1赞 Mark Baker 2/25/2017
if (array_sum($myArray) == count($myArray)) { all true }....if (array_sum($myArray) == 0) { all false }
0赞 aiko 2/25/2017
刚刚在 PHP 7 中测试过,您可以在函数中使用布尔值。in_array
0赞 Jan 2/25/2017
in_array功能看起来如何?
0赞 Naincy 2/25/2017
如果您使用的是 PHP7,那么@Manulaiko的建议是正确的。
1赞 aiko 2/25/2017
@Janin_array($needle, $haystack)

答:

0赞 4EACH 2/25/2017 #1

首先,检查所有数组是否具有相同的值

然后检查它是 TRUE 还是 FALSE。

if(count(array_count_values($array))===1){
  if($array[0]){
    // Completely TRUE; 
    }else{
    // Completely FALSE; 
    }
}
1赞 Naincy 2/25/2017 #2
$res = array_unique($array);
if(count($res) === 1 && $res[0]) {
  // your code
}

评论

0赞 mickmackusa 2/25/2017
为什么不呢?请更新或解释。$res[0]===TRUE
0赞 mickmackusa 2/25/2017
就此而言,不是和?更短,精度相同。$res[0]$res[0]===TRUE
0赞 mickmackusa 2/25/2017
嗯,对不起,我一直在挑选...... 也更短,精度相同。我应该自己写吗?如果您同意,请编辑您的。count($res)==1
0赞 Naincy 2/25/2017
count($res)==1 也很好,但它使用 === 代替 == 的好习惯
0赞 mickmackusa 2/25/2017
我不确定我是否同意,但这是你的答案,所以我现在就鞠躬。
0赞 user1360618 8/27/2021 #3

对于 PHP >= 7.4

要检查所有项目是否都为 true,请执行以下操作:

... = array_reduce($array, fn ($carry, $item) => $carry && $carry === $item, true);

要检查所有项目是否都为 false,请执行以下操作:

... = array_reduce($array, fn ($carry, $item) => $carry && $carry !== $item, true);