PHP从数组中计算启用的值变量

时间:2012-12-04 21:18:39

标签: php count

我有一系列可以禁用或启用的值,所以我想知道有多少值已启用。这是一段代码:

$list = array(
$variable1,
$variable2,
$variable3,
$variable4
);
$count = count($list);

感谢您的回复。

UPDATE:值不是true和/或false,但是ENABLE / DISABLE。在这种情况下你的答案是否适用?再次感谢。

5 个答案:

答案 0 :(得分:9)

如果唯一有效的选项是布尔值TRUE和FALSE,那么

$countTrue = array_sum($list);

修改

以'ENABLE'和'DISABLE'作为可能的值:

$countTrue = array_reduce(
    $list,
    function($counter, $value) {
        return $counter + ($value == 'ENABLE');
    },
    0
);

答案 1 :(得分:9)

只需使用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 ;

ENABLEDISABLE是长字符串,但它们以E& D分别可用于计算

$count = array_reduce($list,function($a,$b){$b{0} == "E" and $a++ ;return $a;},0);
echo $count ;

他们都会输出

3

答案 2 :(得分:1)

$array = array('ENABLED', 'DISABLED', 'ENABLED', 'ENABLED', 'ENABLED', 'DISABLED');
$count = array_count_values($array);

会产生

array(2) {
  ["ENABLED"]=>int(4)
  ["DISABLED"]=>int(2)
}

所以你可以用

来调用它
$count["ENABLED"]

答案 3 :(得分:0)

只需遍历数组并计算它们。

$trueValues = 0;
foreach ($list as $listItem)
{ 
  if ($listItem)
    $trueValues++;
}

echo "Array has ".$trueValues." TRUE items);

答案 4 :(得分:0)

$list = array('ENABLE','DISABLE','ENABLE','ENABLE');   

function countTrues($n)
{
    if ($n == 'ENABLE'){return $n;}
}

$x = array_filter($list , "countTrues");

$count =  count($x);

这应该可以解决问题