我有一个可以禁用或启用的值数组,所以我想知道有多少是启用的。这是一段代码:
$list = array(
$variable1,
$variable2,
$variable3,
$variable4
);
$count = count($list);
感谢您的回复。
更新:这些值不是真或假,而是启用/禁用。你的回答适用于这种情况吗?再次感谢。
如果唯一有效的选项是布尔值 TRUE 和 FALSE,那么
$countTrue = array_sum($list);
编辑
使用“启用”和“禁用”作为可能的值:
$countTrue = array_reduce(
$list,
function($counter, $value) {
return $counter + ($value == 'ENABLE');
},
0
);
只需使用array_filter
$list = array(true,false,true,true);
$count = count(array_filter($list));
echo $count ;
或者
$list = array("Enable","DISABLE","ENabLE","ENABLE");
$count = count(array_filter($list,function($v) { return stripos($v, "enable") !== false; } ));
echo $count ;
ENABLE
并且DISABLE
是长字符串,但它们分别以E
&开头,D
您可以使用它来计数
$count = array_reduce($list,function($a,$b){$b{0} == "E" and $a++ ;return $a;},0);
echo $count ;
他们都会输出
3
$array = array('ENABLED', 'DISABLED', 'ENABLED', 'ENABLED', 'ENABLED', 'DISABLED');
$count = array_count_values($array);
会产生
array(2) {
["ENABLED"]=>int(4)
["DISABLED"]=>int(2)
}
所以你可以使用它来调用它
$count["ENABLED"]
只需遍历数组并计算它们。
$trueValues = 0;
foreach ($list as $listItem)
{
if ($listItem)
$trueValues++;
}
echo "Array has ".$trueValues." TRUE items);
$list = array('ENABLE','DISABLE','ENABLE','ENABLE');
function countTrues($n)
{
if ($n == 'ENABLE'){return $n;}
}
$x = array_filter($list , "countTrues");
$count = count($x);
这应该可以解决问题