0

現在、配列からランダムな値を選択するコードがありますが、重複する値が選択されないようにしたいと考えています。どうすればこれを達成できますか?これまでの私のコードは次のとおりです。

$facilities = array("Blu-ray DVD Player","Chalk board","Computer", "Projector",
"Dual data projector", "DVD/Video");

for($j = 0; $j < rand(1, 3); $j++)
   {
    $fac =  print $facilities[array_rand($facilities, 1)] . '<br>'; 
   } 
4

2 に答える 2

5

見るべきだと思いますarray_rand

$facilities = array("Blu-ray DVD Player","Chalk board","Computer","Data projector","Dual data projector","DVD/Video");
$rand = array_rand($facilities, 2);
                                ^----- Number of values you want 

foreach ( $rand as $key ) {
    print($facilities[$key] . "<br />");
}
于 2012-11-06T12:21:16.590 に答える
2

2 番目のパラメーターとして返す数を指定することにより、 array_rand()から複数のランダム キーを返すことができます。

$keys = (array) array_rand($facilities, rand(1, 3));
shuffle($keys); // array_rand() returns keys unshuffled as of 5.2.10

foreach ($keys as $key) {
    echo $facilities[$key] . '<br>';
}
于 2012-11-06T12:21:54.937 に答える