我有我想要在视图中使用的正确数据,但我想稍微更改它在控制器中,因此它更容易呈现在视图中。遍历数组计算得分返回除零除
每个'问题'将总是有6个答案(score
)。每个score
是一个整数。
,我想在每一个问题的答案进行计算是:
所以在下面的例子中,答案阵列的24 => array:1 [▼
内:
- 获取指数1的比分,和将其除以指数0中的得分。
- 获得指数3的得分,并除以指数2的得分。
- 得到指数5的得分,并除以指数4的得分。
所以在三次迭代结束时,答案中会有3个值。然后它将转到25 => array:1 [▶]
并执行与上面相同的操作。
微小的问题是除数可能为0,这会导致除以0的错误。我试图用循环内的if语句来缓解这个问题。
高电平阵列($groupedQuestionsAudit
)概述:阵列内
array:7 [▼
24 => array:1 [▼
"answers" => array:6 [▼
0 => ReAudit {#517 ▶}
1 => ReAudit {#518 ▶}
2 => ReAudit {#519 ▶}
3 => ReAudit {#520 ▶}
4 => ReAudit {#521 ▶}
5 => ReAudit {#522 ▶}
]
]
25 => array:1 [▶]
26 => array:1 [▶]
27 => array:1 [▶]
29 => array:1 [▶]
30 => array:1 [▶]
31 => array:1 [▶]
]
节确认得分变量:
array:7 [▼
24 => array:1 [▼
"answers" => array:6 [▼
0 => ReAudit {#517 ▼
#original: array:9 [▼
"id" => 337
"score" => 8
"created_at" => null
"updated_at" => null
]
}
1 => ReAudit {#518 ▶}
当前迭代:
foreach ($groupedQuestionsAudit as $score) {
foreach ($score as $value) {
for ($i = 0; $i <= 3; $i++) {
for ($o = 1; $o <= 4; $o++) {
if ($value[$o]->score == 0) {
$answers['answers'][] = 0;
} else {
$answers['answers'][] = $value[$o]->score/$value[$i]->score;
}
}
}
}
}
我上面的想法是循环遍历每个问题,并使用一个额外的for循环来启动上一个索引之上的1个索引。然后我可以执行index 1's score/index 0's score
的计算。我不认为这工作正常不过,因为如果我暂时0检查删除的划分,则返回112个结果(不包括在其各自的问题阵列是),像这样:
array:1 [▼
"answers" => array:112 [▼
0 => 0
1 => 1.5
2 => 1
3 => 1.5
4 => 0
5 => 0
6 => 0
7 => 0
错误本身是:
ErrorException在Controller.php这样行356:被零除 这是上线
$answers['answers'][] = $value[$o]->score/$value[$i]->score;
我不确定为什么我用0得到一个师,当我不顾C如果除数为零则进行计算。
非常感谢。
谢谢!这工作完美。 '$ i + 1'来得到上面的索引..为什么我总是在复杂的事情!再次感谢。 – Ben