5

整数の配列があるPHPスクリプトがあります。たとえば、$forbidden

にない1から400までのランダムな整数を取得したい$forbidden

もちろん、randが機能する結果を出すときに壊れてしまうループは必要ありません。もっと効果的なものが欲しいのですが。

これはどうやるんですか ?

4

2 に答える 2

10

禁止されているすべての数値を配列に配置し、fromを使用array_diffrange(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)];

このようにして、選択セットから除外された番号を削除し、ループの必要性を無効にします:)

于 2012-05-03T20:46:07.650 に答える
0

許可された数の配列を生成します。この配列の番号を調べてください。それらの1つをランダムに選択します。

于 2012-05-03T20:50:20.940 に答える