整数の配列があるPHPスクリプトがあります。たとえば、$forbidden
。
にない1から400までのランダムな整数を取得したい$forbidden
。
もちろん、randが機能する結果を出すときに壊れてしまうループは必要ありません。もっと効果的なものが欲しいのですが。
これはどうやるんですか ?
禁止されているすべての数値を配列に配置し、fromを使用array_diff
しrange(1,400)
ます。許可された数の配列を取得し、。を使用してランダムな数を選択しarray_rand()
ます。
<?php
$forbidden = array(2, 3, 6, 8);
$complete = range(1,10);
$allowed = array_diff($complete, $forbidden);
echo $allowed[array_rand($allowed)];
このようにして、選択セットから除外された番号を削除し、ループの必要性を無効にします:)
許可された数の配列を生成します。この配列の番号を調べてください。それらの1つをランダムに選択します。