计算PHP中具有真值的多维数组元素

时间:2012-08-30 08:18:29

标签: php arrays count

我想知道计算值设置为True的数组元素的最有效方法。

这是我的尝试,但代码变得有点长。我想知道它是否已经存在内置功能,或者可以以更智能的方式完成。在这种情况下,我想知道$ arr ['key'] [ uniquekeyname ] ['check']中元素的数量是多少。

$arr = array();
$arr['keys'] = array(
    'a' => array('check' => true,  'otherinfo' => 'some data'),
    'b' => array('check' => false, 'otherinfo' => 'some data'),
    'c' => array('check' => false, 'otherinfo' => 'some data'),
    'd' => array('check' => true,  'otherinfo' => 'some data'),
);

$numChecked = 0;
foreach($arr['keys'] as $key) {
    if ($key['check']) 
        $numChecked++;          
}

echo $numChecked;

1 个答案:

答案 0 :(得分:0)

复杂性为O(n),因此循环播放就可以了。

我注意到,您可能希望使用三等运算符===来将数组的元素与true进行比较,因为将字段检查设置为另一个值将被计为正确现在或使用==

 'b' => array('check' => 150, 'otherinfo' => 'some data'),

将输出:

 3

鉴于:

$numChecked = 0;
foreach($arr['keys'] as $key) {
    if ($key['check'] === true) 
        $numChecked++;          
}

echo $numChecked;

会帮你的

2

假设你的数组总是只带有真值/假值,那么你可能只需要==即可。