php - Laravel 每月计数记录

标签 php algorithm laravel

我想使用 Laravel 的 Chartjs 创建每月统计数据。

$monthly_uploaded_product = DB::table('author_product')
         ->select(DB::raw('count(id) as total'), DB::raw('MONTH(created_at) as month'))
         ->groupBy('month')
         ->get();

查询结果为:

[{"total":1,"month":10},{"total":17,"month":11}]

代码的输出应该像这样用 Javascript (Chartjs) 表示:

[0,0,0,0,0,0,0,0,0,1,17,0]

我已经编写了生成数组的代码,但错误 undefined offset :1:

$statistics_monthly_product = array();   
foreach (range(1, 12) as $month) {
    foreach ($monthly_uploaded_product as $key) {
        if ($statistics_monthly_product[$month] == $key->month){
            $statistics_monthly_product[$month] = $key->total;
        }else{
            $statistics_monthly_product[$month] = 0;
        }
    }
}

最佳答案

你可以尝试这样的事情:

$year = [0,0,0,0,0,0,0,0,0,0,0,0];//initialize all months to 0

foreach($monthly_uploaded_product as $key)
   $year[$key->month-1] = $key->total;//update each month with the total value
}

关于php - Laravel 每月计数记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47671764/

相关文章:

php - 为什么 PHP 不允许私有(private) const?

PHP/MySQL - SQL 语法错误?

algorithm - 2^(2^n) 或 n^(2n) 哪个增长更快

php - 如何从 laravel 中的多维 json 数组中获取值

mysql - Laravel OrderBy OneToMany 关系

php - Laravel 如何返回并在 HTML 中显示 SQL 错误?

php - 回显后如何显示数组名称?

php - 如果为空,则更新列 a,否则更新列 b,否则如果两列都不为空,则不执行任何操作

javascript - 循环递归?

algorithm - 带时钟的任务 - 算法