-3

Using PHP, how can I select 3 numbers from a numbers range, that don't repeat theirselves?

For example from a range 1 - 100, an answer may be 5, 32, 12, but not 5, 5, 93

Thank you

EnexoOnoma
  • 8,454
  • 18
  • 94
  • 179

2 Answers2

3

Create array of numbers from 1 to 100:

$numbers = range(1, 100);

Shuffle all numbers:

shuffle($numbers);

Retrieve only 3 of them:

$randomNumbers = array_slice($numbers, 0, 3);
AbraCadaver
  • 78,200
  • 7
  • 66
  • 87
Chuck Norris
  • 1,125
  • 1
  • 12
  • 28
0

Try this:

$numbers = [];
$min = 1;
$max = 3;

for($i=0; $i<3; $i++){
    $rnd = rand($min, $max);
    while(in_array($rnd, $numbers)){ // while generated random number is already in the numbers array
        $rnd = rand($min, $max); // generate a new random number
    } // loop ends when newly generated random number is not in the array already
    array_push($numbers, $rnd); // push the new random number into the array
}

It will generate 3 different numbers between 1 and 3, and save them into the $numbers array.

Željko Krnjić
  • 2,356
  • 2
  • 17
  • 24