我正在尝试计算活跃用户和非活跃用户。
首先我获取所有用户数据:
$userData = fetchAllUsers();
然后我写了一个foreach
来获得活跃的用户和不活跃的用户。
foreach ($userData as $key => $value) {
$active = $value['active'];
if($active == 1){
$activeUsers = count($active);
print_r($activeUsers);
} elseif($active == 0) {
$unactiveUsers = count($active);
print_r($unactiveUsers);
}
}
所有这些打印都是1111111
。数据库中有5个用户设置为1(活动),2个用户设置为0(非活动)。因此,我希望将这些添加为5个有效,2个无效。
我已尝试count
和array_sum
以及array_count_values
。似乎什么都没做我需要的。任何帮助将是欣赏。有人可以指导我朝正确的方向发展吗?
答案 0 :(得分:5)
你在循环中,你不需要count
。只需自己增加一个计数器。等到你完成了循环以吐出结果。
$activeUsers = 0;
$inactiveUsers = 0;
foreach ($userData as $key => $value) {
$active = $value['active'];
if($active == 1){
$activeUsers++;
} elseif ($active == 0) {
$inactiveUsers++;
}
}
var_dump($activeUsers);
var_dump($inactiveUsers);
答案 1 :(得分:3)
您需要计算一个变量,例如
$active = 0;
$inactive = 0;
foreach ($userData as $key => $value) {
switch(true) {
case $value['active'] == 1: $active++; break;
default: $inactive++; break;
}
}
var_dump("Active users" + $active);
var_dump("Inactive users" + $inactive);