0

ユーザーがチェックボックスを使用して数字を選択する HTML フォームがあります。数値は、次のように PHP 配列に入れられます。

<input type="checkbox" name="formnumber[]" value="1" />

1 から 24 までの 24 の数字を選択できます。配列の数字を使用して、1 行あたり 5 つの一意の数字を持つ 10 の一意の行のリストを出力したいと考えています。

例: フォームから 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 を選択します。出力は次のようになります。

2 16 4 1 15
10 13 2 4 5
12 1 3 16 11

etc etc (10 lines)

このように動作するようになりましたが、それでも時々重複します。フォームに 5 から 24 の数字を入力すると、ほとんどが一意の 4 つの数字のランダムな行が出力されます。

$i=1;

while ($i<=$xresults) {

$numbers = $_POST['formnumber'];

shuffle($numbers);

$counter = 0; 

    foreach ($numbers as $number1) {

        echo "<span>$number1</span> ";

    if(++$counter >= 4) { break; }

}

$i++;

echo '<p>';

 }

}
4

1 に答える 1

4

したがって、基本的には、選択した5つのボックスのさまざまな組み合わせを選択する必要があります。

まあ、私はこのようなことをします:

$flip = array_flip($_POST['formnumber']);
for($i=0; $i<10; $i++) {
    $combo = array_rand($flip,5);
    echo implode(" ",$combo)."\n";
}
于 2013-02-13T01:51:18.590 に答える