我有我想要在視圖中使用的正確數據,但我想稍微更改它在控制器中,因此它更容易呈現在視圖中。遍歷數組計算得分返回除零除
每個'問題'將總是有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