このパーセント計算を修正しようとしていますが、今日は困惑しています。
コードは次のとおりです。
$entries = GFAPI::get_entries($form['id'], $search_criteria);
$score = 0;
$max = 0;
$percentage = array();
if(!empty($entries)) {
foreach ($entries as $entry) {
$score = GFSurvey::get_field_score($form_fields, $entry);
$max = end($form_fields['choices']);
if(empty($max['score'])) {
unset($form_fields['choices'][key($form_fields['choices'])]);
$max = end($form_fields['choices']);
}
$max = $max['score'];
$percentage[] = ($score / $max ) * 100;
}
}
$average = round(array_sum($percentage) / count($percentage), 2);
フォームがあり、フォームに該当しないラジオ ボタンがあります。クライアントがフォームに記入するとき、特定の質問については、適用されず、全体の合計スコアにカウントする必要がないため、N/A にする必要がある場合があります。
そのため、% が正しくないレポートが生成されます。そのパーセントは、94% と読む必要があります。この図で、グラフをクリックすると、次のことがわかります。
この質問に回答した人が表示されており、20 人います。各人に合計 5 つの最大ポイントがあります。この場合、N/A ボックスが空白に設定されており、0 が返されます。 100 のすべての可能なポイントを合計しています。 (20 人で最大 5 ポイント)
私がする必要があるのは、空白のフィールドを数えないことです。その見返りに、たとえば画像のグラフでクリックすると、答えたのは5人だけなので、最大ポイントは25です。合計ポイントは23.5なので、23.5 / 25.