Ver Mensaje Individual
  #4 (permalink)  
Antiguo 25/07/2014, 06:12
alx1417
 
Fecha de Ingreso: enero-2011
Ubicación: Barcelona
Mensajes: 36
Antigüedad: 13 años, 4 meses
Puntos: 5
Respuesta: Generar códigos alfanumericos sin repetir

Si me lo permites rodrypaladin, teniendo en cuenta que lexus hizo hincapié en que no se repitan los códigos, en tu función aparte de que los caracteres no se pueden repetir, existe un pequeña posibilidad de que los códigos se repitan.

He modificado el tuyo para montarlo en una función.
Se especifica la cantidad (por defecto 1), la longitud (por defecto 10) y si incluye caracteres numéricos (por defecto sí).

Esta función comprueba específicamente que el código que genera no haya salido ya con anterioridad.

Código PHP:
function generarCodigos($cantidad=3$longitud=10$incluyeNum=true){
    
$caracteres "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    if(
$incluyeNum)
        
$caracteres .= "1234567890";
    
    
$arrPassResult=array();
    
$index=0;
    while(
$index<$cantidad){
        
$tmp="";
        for(
$i=0;$i<$longitud;$i++){
            
$tmp.=$caracteres[rand(0,strlen($caracteres)-1)];
        }
        if(!
in_array($tmp$arrPassResult)){
            
$arrPassResult[]=$tmp;
            
$index++;
        }
    }
    return 
$arrPassResult;

$codigos=generarCodigos(3,10);
print_r($codigos); // Array ( [0] => XOIU3JIGY5 [1] => 16LJO4S0HO [2] => RU7HY16MI6 ) 
Espero que te sirva.

Saludos, Alex.