0

現時点では、3 ページでランダムに 1 回満たす必要がある 3 つの条件があります。したがって、ページ 1 がランダムに 2 番目の条件を取得した場合、ページ 2 はランダムに条件 1 または 3 のみを取得できます。そのために、データベースに書き込み (既にデータベースを使用してアクティビティを記録しています)、他のページでそれを呼び出して、前のページでどの条件が既に満たされているかを確認します。

最初のページにランダム関数を作成しました。<?php $rand = rand(1, 3); ?>

2 番目のページ:

    if ($row['manip_1'] == 1){
        $man = rand(2,3);
    } elseif ($row['manip_1'] == 2){    //should do randomly 1 or 3,
        $man_a = rand(1,2);         //but don't know how to skip #2 in a 
            if($man_a == 2){    //random function, so solved it like this
                $man = 3;
            } else {
                $man = 1;
            }
    } else {
        $man = rand(1,2);
    }

3 番目のページ:

    if ($row['manip_1'] == 1 && $row['manip_2'] == 2){
        $man = 3;
    } elseif ($row['manip_1'] == 1 && $row['manip_2'] == 3){
        $man = 2;
    } elseif ($row['manip_1'] == 2 && $row['manip_2'] == 1){
        $man = 3;
    } elseif ($row['manip_1'] == 2 && $row['manip_2'] == 3){
        $man = 1;
    } elseif ($row['manip_1'] == 3 && $row['manip_2'] == 1){
        $man = 2;
    } else {
        $man = 1;
    }

問題は、突然 4 ページ目が必要になったことです。4番目の条件もあるはずだということです。これは、最後のページで可能性の数が 25 になったことも意味します。以前と同じようにもう一度プログラムできますが、前のページの条件に依存するランダムな条件をプログラムする便利な方法がないかどうか疑問に思っていました。4 ページの中で、各条件は 1 回だけ表示できます。

4

1 に答える 1

2

条件の配列を定義し、それらをセッションに保存します。

$conditions = array(1,2,3,4);
$_SESSION['conditions'] = $conditions;

ランダム化は簡単です:

array_shuffle($_SESSION['conditions']);

次に、個々のページのそれぞれで、セッションからこれらの値の 1 つを取り出すだけです。

<?php
# page 1
session_start();

$random_condition = array_pop($_SESSION['conditions']);

他のすべてのページについても同様に行います。

<?php
#page n
session_start();
$random_condition = array_pop($_SESSION['conditions']);
于 2013-07-18T15:00:35.327 に答える