-2

私はこのphpコードを持っています:

<?php
function GetRand($N, $min=1, $max=59) {
$Local = array();
mt_srand(time());
for ($i=0;$i<$N;$i++) 
$LocalArr [] = mt_rand($min, $max); 
return $LocalArr;
}
$A = GetRand(5);
foreach($A as $K=>$v) echo "$v ";
?>

結果は 1 から 59 までの 5 つの数字です。問題は、時々次のような結果を受け取ることです。

43 9 13 9 7 これらの 5 つの数字の中に、数字の 9 が 2 回あります。私はphpコードを変更したいので、繰り返される数字があるたびに、この数字をスキップし、繰り返される数字の代わりに別の数字を表す必要があります.

事前にどうもありがとうございました!

4

2 に答える 2

0
$numbers = range(1, 59);
shuffle($numbers);
var_dump(array_slice($numbers, 0, 5));
于 2013-03-14T19:34:39.030 に答える
0

これを試してください(テストされていません):

<?php

    $randoms = array(rand(1,59));
    while(sizeof($randoms) <= 5) {

        $randoms[] = rand(1,59);
        $randoms = array_unique($randoms);

    }
于 2013-03-14T19:34:58.450 に答える