Ver Mensaje Individual
  #3 (permalink)  
Antiguo 24/07/2014, 17:22
Avatar de rodrypaladin
rodrypaladin
Moderador
 
Fecha de Ingreso: abril-2010
Ubicación: Madrid
Mensajes: 2.127
Antigüedad: 14 años, 1 mes
Puntos: 468
Respuesta: Generar códigos alfanumericos sin repetir

He usado algo parecido para generación de contraseñas aleatorias, asíque lo tenía ya guardado en la cabeza, lo he modificado un poco para que te sirva exactamente para lo que pedías.

Código PHP:
Ver original
  1. $caracteres = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
  2. $caracteres .= "1234567890";
  3. $final = array();
  4. $longitud = 10;
  5. $carac_desordenada = str_shuffle($caracteres);
  6. for($i=0;$i<=$longitud;$i++) {
  7. $final[$i] = $carac_desordenada[$i]; }
  8. //recorremos la array e imprimimos
  9. foreach($final as $datos) {
  10. echo $datos; }

Primero creamos una variable string con todas los caracteres que queremos que tenga nuestro código. En el caso de quieras también minúsculas añade
Cita:
$caracteres .= "abcdefghijklmnopqrstuvwxyz";
Después mesclamos con str_shuffle el string, es decir, lo desordenamos. Creamos un bucle que se repite tantas veces como longitud queramos darle a nuestro código, y añadimos los 10 primeros numeros a una array que teniamos vacia preparado para esto.

Lo hago de esta manera como pensando que se tratase de las bolas de lotería, si sacamos el 1 de la cesta, obviamente el 1 ya no podrá volver a salir. por eso uso str_shuffle

Si cambias la varaible $longitud del código al 15, el código será de 15 caracteres.

Espero que te sirva.
__________________
No te olvides de dar +1 a quien te echa un cable ;)