-3

PHPで「性格」テストをしたいと思います。私は次のようなロジックでそれを作ることを考えました:

If $answer_one == "a" --> $personality_a = $personality_a+1;
If $answer_one == "b" --> $personality_b = $personality_b+1;
If $answer_one == "c" --> $personality_c = $personality_c+1;
If $answer_one == "d" --> $personality_d = $personality_d+1;

See which $personality_* is the highest one and then send the response.

どうすればこのようなものを作成できforeach($_POST as $k => $v)ますか?

4

2 に答える 2

1

あなたもフォームを作成していて、「ソースの表示」ハックからテストを隠すことに興味がないと仮定します

htmlでは、次の行に沿ったもの

<input type="radio" name="answer[1]" value="a">

コードで

<?php

$answers = array_count_values($_POST['answer']);

arsort($answers, SORT_NUMERIC);
reset($answers);
$personalityType = key($answers);

// TODO: validate type is valid
于 2012-08-17T21:43:34.387 に答える
1

私の友人の静的コードは簡単です。ここで多次元配列を考えるかもしれません

最初に回答配列を作成します $answerArray = array('a','b','c','d')

次に、ユーザーの応答を配列 ($userAnswers と呼ばれる) に入力します。

次に、次のようなものを使用して配列を比較します

$numCorrect = 0;
for($a; $a < count($answerArray); $a++){
    if($answerArray[$a] == $userAnswers[$a]){
        $numCorrect++;
    }
}
于 2012-08-17T22:15:58.410 に答える