从PHP数组返回的每个项的总和

时间:2015-03-13 19:28:59

标签: php

我正在尝试计算活跃用户和非活跃用户。

首先我获取所有用户数据: $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个无效。

我已尝试countarray_sum以及array_count_values。似乎什么都没做我需要的。任何帮助将是欣赏。有人可以指导我朝正确的方向发展吗?

2 个答案:

答案 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);