Hola, estoy intentando hacer un código en que se vayan generando números aleatorios y me los guarde un array, pero sin repetir lo números.
Esto es lo que he hecho:
Código PHP:
$max=9;
$aleatorio=mt_rand(1,$max); //Genereamos aleatorio
$usados[]=$aleatorio; //Guardamos el primero en un array ya que el primero no puede estar repetido
for ($i=0; $i<6; $i++)
{
$aleatorio=mt_rand(1,$max); //Generamos aleatorio
echo $usados[$i];
$contador=0;
for ($n=$contador; $n<count($usados)+1; $n++) //Recorre desde el comienzo hasta el final del array
{
while ($aleatorio==$usados[$n]) //Si se repiten generamos el aleatorio y ponemos reiniciamos el contador para que vuelva a comprobar en el for
{
$aleatorio=mt_rand(1,$max);
$contador=0;
}
}
$usados[]=$aleatorio; //No esta repetido, luego guardamos el aleatorio
}
El caso es que aunque no repite tanto como dejando usando solo la función rand y guardando si que a veces me repite algún número. Creo que el error esta en que no reinicia el contador después del while con lo cual no vuelve a comprobar todos los números del array.