値が常に前の値と異なるループ内のPHParray_rand

アンディ

私は次のようなPHPスクリプトを持っています:

<?php
$a = [1 => 1, 2 => 2, 3 => 3];

for ($x=1; $x<10; $x++) {
    $r = array_rand($a);
    echo $a[$r] . '<br>';
}
?>

この出力は毎回ランダムですが、例として次のようになります。

2 1 3 3 2 3 1 3 2

私が達成しようとしているのは、値が出力されるたびに、前の値とは異なることを確認することです。したがって、上記の例では、33を発生させたくありません。

「現在の」出力値をと呼ばれる変数に格納し、$current_value次に出力されるものではないことを確認するという独自の解決策を考え出そうとしました

<?php
$a = [1 => 1, 2 => 2, 3 => 3];

$current_value = false;
for ($x=1; $x<10; $x++) {

    if ($current_value) {
        $r = array_rand($a);
        while ($current_value !== $r) {
            echo $a[$r] . '<br>';
            $current_value = $a[$r];
        }
    } else {
        $r = array_rand($a);
        echo $a[$r] . '<br>';
        $current_value = $a[$r];
    }
}
?>

(少なくとも私がテストしたものからは)同じ値が順番に表示されることはありませんが、ループは通常は$x<10未満の乱数のみを出力しますここでの私の推測は、処理$current_value == $rするものがないので、単に何も出力しないということですか?

誰かがこれを達成する方法についてアドバイスできますか?期待される出力はfor、シーケンスにオーバーラップのない9個(またはループカウンターが設定されているもの)の整数です。

2 1 3 1 2 3 1 3 2

編集:出力される値は常に1、2、または3でなければなりません。これが私が$a定義どおりに使用していた理由です。

ヴィクトル

私はこのコードがあなたが望むことをするだろうと信じています:

<?php
$a = [1, 2, 3];

$current_value = false;
for ($x=1; $x<10; $x++) {
    $r = array_rand($a, 1);
    if ($current_value !== $r) {
        echo $a[$r] . '<br>';
        $current_value = $r;
    }else{
        $x--;
    }
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

パンダのグループ内の最後の値と最初の値が異なる列を作成する方法

分類Dev

forループ内のGoroutineが異なる値を返す

分類Dev

ループ内のこのPHP割り当てが常に最初の値を出力するのはなぜですか?

分類Dev

ループ内のPrintlnとクロージャーが異なる値を出力する

分類Dev

jsのforループ内の異なる変数内に異なる値を入れる

分類Dev

SQL Server 2012 でグループ内の値が異なる場合の合計

分類Dev

プロット内のグループごとに異なるアルファ値

分類Dev

ループ内の未定義の値につながる.push

分類Dev

異なる値パラメータを使用してコールバックを保存すると、常に最後の値が使用されます

分類Dev

Rのグループごとに、異なる列内の値に従って列内の値を並べ替えます

分類Dev

c#ループ内の同じ変数に異なる値を追加する必要があります

分類Dev

ループ内にあるときにpygame.groupの値がnullになるのはなぜですか?

分類Dev

forループの内側と外側の異なる値としての配列の奇妙な動作

分類Dev

ループ内の最小値と最大値を常にリセットするvb.net

分類Dev

id(id)とid(id(id))が常に同じ値を返すのに、id(id(id(id(id))))が3つの値を「ループ」するのはなぜですか?

分類Dev

nawkのforループのrand()は常に同じ値-kshを返します

分類Dev

Julia-forループ内の前の値と次の値

分類Dev

ルックアップ列の表示が異なる値は、dxdatagrid(Dev Extreme)内の同じ行にある別の列の値によって異なります。

分類Dev

XSLTの異なるタグ値からの値のループと合計

分類Dev

現在の年の月ごとに同じ列やグループ内の異なる値のパーセンテージを計算するには?

分類Dev

PHParray_mergeの空の値は常に優先順位が低くなります

分類Dev

1つのグループにC#の異なる値

分類Dev

ループ後のforループのシェル変数値が異なる

分類Dev

セルが空でない場合、前の行とは異なる列の値をコピーするにはどうすればよいですか?

分類Dev

2つの異なるタイプの入力タグの値を変更する方法。値が常にリアルタイムと同じになるように?

分類Dev

ループ内でオブジェクトのキーを値として設定すると、値が未定義になるのはなぜですか?

分類Dev

次の値が前の値と異なる場合は、セルの背景色を変更します

分類Dev

印刷時に前のポインタの値が異なる

分類Dev

場所の内訳の値がGoogleキーワードプランナーの検索値と異なるのはなぜですか

Related 関連記事

  1. 1

    パンダのグループ内の最後の値と最初の値が異なる列を作成する方法

  2. 2

    forループ内のGoroutineが異なる値を返す

  3. 3

    ループ内のこのPHP割り当てが常に最初の値を出力するのはなぜですか?

  4. 4

    ループ内のPrintlnとクロージャーが異なる値を出力する

  5. 5

    jsのforループ内の異なる変数内に異なる値を入れる

  6. 6

    SQL Server 2012 でグループ内の値が異なる場合の合計

  7. 7

    プロット内のグループごとに異なるアルファ値

  8. 8

    ループ内の未定義の値につながる.push

  9. 9

    異なる値パラメータを使用してコールバックを保存すると、常に最後の値が使用されます

  10. 10

    Rのグループごとに、異なる列内の値に従って列内の値を並べ替えます

  11. 11

    c#ループ内の同じ変数に異なる値を追加する必要があります

  12. 12

    ループ内にあるときにpygame.groupの値がnullになるのはなぜですか?

  13. 13

    forループの内側と外側の異なる値としての配列の奇妙な動作

  14. 14

    ループ内の最小値と最大値を常にリセットするvb.net

  15. 15

    id(id)とid(id(id))が常に同じ値を返すのに、id(id(id(id(id))))が3つの値を「ループ」するのはなぜですか?

  16. 16

    nawkのforループのrand()は常に同じ値-kshを返します

  17. 17

    Julia-forループ内の前の値と次の値

  18. 18

    ルックアップ列の表示が異なる値は、dxdatagrid(Dev Extreme)内の同じ行にある別の列の値によって異なります。

  19. 19

    XSLTの異なるタグ値からの値のループと合計

  20. 20

    現在の年の月ごとに同じ列やグループ内の異なる値のパーセンテージを計算するには?

  21. 21

    PHParray_mergeの空の値は常に優先順位が低くなります

  22. 22

    1つのグループにC#の異なる値

  23. 23

    ループ後のforループのシェル変数値が異なる

  24. 24

    セルが空でない場合、前の行とは異なる列の値をコピーするにはどうすればよいですか?

  25. 25

    2つの異なるタイプの入力タグの値を変更する方法。値が常にリアルタイムと同じになるように?

  26. 26

    ループ内でオブジェクトのキーを値として設定すると、値が未定義になるのはなぜですか?

  27. 27

    次の値が前の値と異なる場合は、セルの背景色を変更します

  28. 28

    印刷時に前のポインタの値が異なる

  29. 29

    場所の内訳の値がGoogleキーワードプランナーの検索値と異なるのはなぜですか

ホットタグ

アーカイブ