- Example:
$nr = mt_rand();
echo $nr;
echo $nr;
• To get a random number between a minimum and maximum number, use this syntax: mt_rand($min, $max).
$nr = mt_rand(1000, 9999);
echo $nr;
echo $nr;
Random numbers from array
If you have an array of numbers, and you want to get an random number from that array, you can use the array_rand() function. This function returns the key for a random entry.- Example:
$nrs = array(123, 567, 4556, 34245, 78); $rk = array_rand($nrs); $nr = $nrs[$rk]; echo $nr; // 4556
• If you want to pick more than one random key from array, add a seccond argument that specifies the number of keys (less than the number of elements of that array). In this case, array_rand($array, $nrk) will return an array with $nrs number of random keys from $array.
$nrs = array(123, 567, 4556, 34425, 78, 789); $rks = array_rand($nrs, 2); // contains 2 random keys (2, 5) echo $nrs[$rks[0]]; // 4556 echo $nrs[$rks[1]]; // 789
Random number with distinct digits
If you want to get a random number between a minimum and maximum number, but with distinct digits, without repeated character in the random number, you can use the following function.<?php // returns a random number between $min and $max, with distinct digits function getDistinctNr($min, $max) { // random number with distinct digits ( http://coursesweb.net ) $nrstr = (string) mt_rand($min, $max); // get random number, converted into string $n_nr = strlen($nrstr); // number of characters $setnr = array(); // to store distinct digits that will form the returned number // traverse the characters of $nrstr to add in $setnr only its distinct digits // if number already in $setnr, traverse 0 to 9 to define another distinct number for($i=0; $i<$n_nr; $i++) { if(!in_array($nrstr[$i], $setnr)) $setnr[] = $nrstr[$i]; else { for($i2=0; $i2<10; $i2++) { if(!in_array($i2, $setnr)) { $setnr[] = $i2; break; } } } } return implode('', $setnr); } // Test $nr = getDistinctNr(1000, 9999); echo $nr; ?>
0 comments:
Post a Comment