Forum Moderators: coopster

Message Too Old, No Replies

5 unique random numbers in an array

         

anshul

6:38 am on Jun 16, 2005 (gmt 0)

10+ Year Member



I wrote this code to generate random numbers:
$max = 6;
for($i = 0; count($random) < 5; $i++) {
$random[$i] = rand(1, $max);
for($j = 0; $j < count($random); $j++) {
if($random[$i] == $random[$j]) {
$random[$i] == NULL;
array_pop($random);
}
}
}

while(list($key, $value) = each($random))
echo $value . ", ";

But I get repeated numbers sometimes; where I've mistaken?

dreamcatcher

7:40 am on Jun 16, 2005 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



Try this:


$numbers = range(0,9);

shuffle($numbers);

for ($i=0;$i<6;$i++)
{
$random .= $numbers[$i];
}

echo $random;

dc

mcibor

10:52 am on Jun 16, 2005 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



Or in your case just:

$max = 6;
$random = shuffle(range(1, $max));

Best regards
Michal Cibor