我想知道计算值设置为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;
答案 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
假设你的数组总是只带有真值/假值,那么你可能只需要==
即可。