场景是提供 api 给前端做数据统计展示, 用的工具是 echarts , 要求就是在某个日期没有数据的时候不能留空。实现方式蛮多的,新建时间表等等... 这里介绍一个 PHP 处理的方法。
- 首先拿到我们需要展示的数据
$sold_trend
【这个参数我在 sql 中对时间做了 group by 的分组处理了 注意,下面只是对应上天数的处理】 - 获取日期,【一般来说近七天、近三十天的比较多。多少天不影响】
$day = '你需要统计的日期天数';
for ($i = $day - 1; 0 <= $i; $i--) {
$result[] = date('Y-m-d', strtotime('-' . $i . ' day'));
$sold_total[] = 0; //展示字段 1
$sold_number[] = 0; //展示字段 2
$sold_pro_total[] = 0; //展示字段 3
}
- 拿到数据,循环统计
array_walk($sold_trend, function ($value, $key) use ($result, &$sold_total,&$sold_number,&$sold_pro_total) {
//注意这里 array_search 的查找规则
$index = array_search($value['ymd'],$result);
$sold_total[$index] = $value['order_total_sum'];
$sold_number[$index] = $value['sold_number_count'];
$sold_pro_total[$index] = $value['order_pro_total_sum'];
});
- the end
$data = [
'day' => $result,
'sold_total' => $sold_total,
'sold_number' => $sold_number,
'sold_pro_total' => $sold_pro_total
];
网友评论