在我比较问卷的页面上,我计算了两者的平均值。但是,无论我输入什么数字,某一行代码总是以除以零结束。编码:
<?php foreach($questions as $question) : ?>
<?= Html::tag('h4', $question->question) ?>
<?php
//FIRST SET OF QUESTIONNAIRES
$answers1 = $questionnaires1->andWhere(['id_question' => $question->id]);
$all1 = [];
foreach($answers1->orderBy(['answer' => SORT_ASC])->all() as $answer1){
$all1[] = $answer1->answer;
}
$array1 = [
Yii::t('app', 'Number of answers') => $answers1->count(),
Yii::t('app', 'Average answer') => round(array_sum($all1)/count($all1), 2),
Yii::t('app', 'Median') => calculate_median($all1),
Yii::t('app', 'Standard deviation') => round(sd($all1), 2)
];
首先,我将每个单独的答案存储在一个数组中,并按升序排列。然后,我通过将数组中的每个值相加来计算平均值,除以数组中的记录数。我还将结果四舍五入到小数点后两位。
出于某种原因,round(array_sum($all1)/count($all1), 2)
总是导致除数为零。在计算 4/3 之前,我检查了这两个值。它显然应该导致 1.3333333。
最后,当我尝试echo var_dump(round(array_sum($all1)/count($all1), 2))
它按预期返回 float(1.33) 时......也许我在这里忽略了一些非常简单的东西,但我没有看到它。