大家好,我正在使用 ChartJs 和 Laravel 在图表上绘制数据,我需要根据月份绘制数据,我希望即使没有数据也能在图表上显示整个 12 个月,我有几个月的数组 ['January', 'February'....然后我在这里有我的数据: $stats = DB::table('wallet_payouts') ->groupBy('date') ->orderBy('date', 'ASC') ->get([ DB::raw('DATE_FORMAT(created_at, "%M") as date'), DB::raw('COUNT(*) as value') ]); $labels = []; $data = []; foreach ($months as $month){ foreach ($stats as $stat){ if ($month == $stat->date){ array_push($labels, $stat->date); array_push($data, $stat->value); }else{ array_push($labels, $month); array_push($data, 0); } } }但问题不是循环后 12 个月,我得到 24...重复,数据也在 24...我希望月份与没有重复的数据匹配
1 回答
慕妹3146593
TA贡献1820条经验 获得超9个赞
试试下面的代码:
$stats = DB::table('wallet_payouts')
->groupBy('date')
->orderBy('date', 'ASC')
->get([
DB::raw('DATE_FORMAT(created_at, "%M") as date'),
DB::raw('COUNT(*) as value')
]);
$labels = $months;
$data = [];
$temp = [];
foreach ($stats as $stat){
$temp[$stat->date] = $stat->value;
}
foreach($months as $month){
if(array_key_exists($month,$temp)){
array_push($data, $temp[$month]);
} else {
array_push($data, 0);
}
}
- 1 回答
- 0 关注
- 90 浏览
添加回答
举报
0/150
提交
取消