我有一个数组,里面有一些信息。有两个重要的键datum和answer。我想查看密钥answer每年对值进行fout分组的次数(datum包含年份,因此在此数组中有两年2019和2020)我如何看待2019年和2020年fout发生多少次datum?因此,例如,我看到以下内容:2019 - 5 times fout2020 - 0 times fout我试图在创建数组的循环中进行计数,但由于某种原因,它总是返回0。这是我之前尝试过的(开始):while($getwpi = $getwpicon->fetch_assoc()){ $year = date('Y', strtotime($getwpi['datum'])); $getwpi['datum'] = $year; // update your field $wpi[] = $getwpi; // add to the result array $counted = count($wpi['datum']);}但$counted返回0。这是我目前的循环:while($getwpi = $getwpicon->fetch_assoc()){ $year = date('Y', strtotime($getwpi['datum'])); $getwpi['datum'] = $year; // update your field $wpi[] = $getwpi; // add to the result array}
3 回答
守候你守候我
TA贡献1802条经验 获得超10个赞
您可以在循环内添加计数:
while($getwpi = $getwpicon->fetch_assoc()){
$year = date('Y', strtotime($getwpi['datum']));
$getwpi['datum'] = $year; // update your field
if ($getwpi['answer'] == "fout") {
$res[$year] = isset($res[$year]) ? $res[$year] + 1 : 1;
}
$wpi[] = $getwpi; // add to the result array
}
现在,$res将使用每年计数的数组。您可以在其上循环打印所需的内容。
互换的青春
TA贡献1797条经验 获得超6个赞
您可以使用array_walk和array_key_exists来解决这个问题
$res=[];
array_walk($arr, function($v, $k) use (&$res){//$arr is the main array
$res[$v['datum']] = (array_key_exists($v['datum'],$res) && !empty($v['answer'])) ? ($res[$v['datum']]+=1) : 1;
});
echo '<pre>';
print_r($res);
输出示例:
Array
(
[2019] => 4
)
- 3 回答
- 0 关注
- 146 浏览
添加回答
举报
0/150
提交
取消