rand - Número aleatorio en el rango[min-max] usando PHP
php random number 5 digits (7)
En un nuevo PHP7 finalmente hay un soporte para un PHP7 pseudoaleatorio criptográficamente seguro.
int random_int ( int $min , int $max )
random_int - Genera enteros pseudoaleatorizados criptográficamente seguros
que básicamente hace que las respuestas anteriores sean obsoletas.
¿Hay alguna manera de generar un número aleatorio basado en un mínimo y máximo?
Por ejemplo, si min fuera 1 y max 20, ¿debería generar cualquier número entre 1 y 20, incluyendo 1 y 20?
He agrupado las respuestas aquí y las he hecho independientes;
function generateRandom($min = 1, $max = 20) {
if (function_exists(''random_int'')):
return random_int($min, $max); // more secure
elseif (function_exists(''mt_rand'')):
return mt_rand($min, $max); // faster
endif;
return rand($min, $max); // old
}
Prueba este. Generará id de acuerdo a tu deseo.
function id()
{
// add limit
$id_length = 20;
// add any character / digit
$alfa = "abcdefghijklmnopqrstuvwxyz1234567890";
$token = "";
for($i = 1; $i < $id_length; $i ++) {
// generate randomly within given character/digits
@$token .= $alfa[rand(1, strlen($alfa))];
}
return $token;
}
Una versión más rápida más rápida usaría mt_rand:
$min=1;
$max=20;
echo mt_rand($min,$max);
Fuente: http://www.php.net/manual/en/function.mt-rand.php .
NOTA: Su servidor necesita tener habilitado el módulo Math PHP para que esto funcione. Si no lo hace, inserte un error en su host para habilitarlo o use el rand normal (y más lento) ().
<?php
$min=1;
$max=20;
echo rand($min,$max);
?>
rand(1,20)
La función de rand de Docs para PHP está aquí:
php.net/manual/en/function.rand.php
Use la función srand()
para establecer el valor de inicialización del generador de números aleatorios.