1

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

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

$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;
4

1 回答 1

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

==假设你的数组总是只携带真/假值,也许你需要得到它是好的。

于 2012-08-30T08:29:12.330 回答