Выполнить среднее в массиве в Laravel - PullRequest
0 голосов
/ 11 января 2019

Я пытаюсь вычислить среднее значение в моей таблице. Имя столбца term1_result, а среднее значение находится в массиве, поскольку в моей таблице много студентов и предметов. Я группирую их по student_id, но всегда получаю нулевое значение. Я использую Laravel framework.

Код

$scores = Grades::with('student', 'subject')->groupBy('student_id')->get();

foreach($scores as $score) {
    foreach($score as $key => $value) {
        $sum_arr[] = $value['term1_result'];
    }
    $avg = array_sum($sum_arr) / count($sum_arr);
    $avgarr[] = $avg;
}

dd($avgarr);

Результат

array:6 [▼
  0 => 0
  1 => 0
  2 => 0
  3 => 0
  4 => 0
  5 => 0
]

Ответы [ 2 ]

0 голосов
/ 11 января 2019

Вы должны попробовать это:

$scores = Grades::with('student','subject')->groupBy('student_id')->avg('term1_result');
0 голосов
/ 11 января 2019

Это из-за вашего контента SQL!

Вы сбросили свои результаты, чтобы увидеть результат?

Вы должны суммировать по каждому пункту в каждой группе.

Вы можете увидеть это , чтобы узнать больше

...