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

从PHP数组返回的每个项的总和,php,Php,我正在尝试获取活动用户和非活动用户的计数 首先,我获取所有用户数据: $userData=fetchAllUsers() 然后我为每个人写一个foreach,得到活跃用户和非活跃用户的总数 foreach ($userData as $key => $value) { $active = $value['active']; if($active == 1){ $activeUsers = count($active); print_r($activeUsers); } el

我正在尝试获取活动用户和非活动用户的计数

首先,我获取所有用户数据:
$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个是非活动的

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);
}

}

我尝试了
count
array\u sum
array\u count\u value
。似乎没有什么能满足我的需要。任何帮助都将不胜感激。有人能指引我正确的方向吗?

你在一个循环中,你不需要
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);

你需要计算一个变量,例如

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

数据似乎是字符串,请尝试使用
(int)$variable
将其强制,如果您以18秒的优势击败我:-D@AndyNice=)虽然您的代码更简洁,但我认为我的代码对于初学者来说更容易理解。这非常有效!我今天早些时候尝试过,但我犯的错误是没有包括这个
$activeUsers=0$不活动用户=0
foreach
之外。