Tema: FAQ's de PHP
Ver Mensaje Individual
  #201 (permalink)  
Antiguo 05/10/2008, 16:58
Avatar de korg1988
korg1988
 
Fecha de Ingreso: junio-2006
Ubicación: Santa Fe, Argentina
Mensajes: 825
Antigüedad: 18 años, 4 meses
Puntos: 19
De acuerdo Respuesta: FAQ's de PHP

Tema: Funciones
Pregunta: ¿Como obtengo numeros aleatorios (random) sin que se repitan entre si (unicos)?

Respuesta:

Podemos crear una funcion, la llame uni_rands (o sea , unique rands o randoms unicos, o aleatorios unicos o lo que sea )

Aca va el codigo de la funcion
Código PHP:
function uni_rands($cant$ini$fin)
{
    
$ns = array();
    if((
$fin $ini 1) >= $cant) {
        while(
$ct $cant)
        {
            
$rnd rand($ini$fin);
            if(!
in_array($rnd$ns)) {
                
$ns[$ct] = $rnd;
                ++
$ct;
            }
        }
    } else {
        die(
"Error: Rango inferior a la Cantidad");
    }
    return 
$ns;

Y aca una implementacion de Ejemplo
Código PHP:
foreach(uni_rands(10110) as $numero)
{
    echo 
$numero."\n";

Como veran la funcion devuelve un array, y los argumentos que necesita son, la cantidad de numeros que queremos obtener, el numero minimo, y el numero maximo

Saludos
Suerte