-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 出现了两次。我想更改 php 代码,所以每次当有一个重复的数字时,这个数字应该被跳过,而不是重复的数字应该代表另一个数字,这样每次我有 5 个数字并且它们之间没有重复。

非常感谢您提前!

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 回答