0

このパーセント計算を修正しようとしていますが、今日は困惑しています。

コードは次のとおりです。

$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.

4

1 に答える 1