Ver Mensaje Individual
  #6 (permalink)  
Antiguo 04/06/2014, 12:46
rjulio21
 
Fecha de Ingreso: marzo-2011
Ubicación: Caracas
Mensajes: 389
Antigüedad: 13 años, 2 meses
Puntos: 16
Respuesta: Numero aleatorio menor que 20 excepto algunos

Cita:
Iniciado por Italico76 Ver Mensaje
Código PHP:
Ver original
  1. // con generadores desde PHP 5.5
  2. for ($i=1;$i<21;$i++)
  3.     $todos[] = $i;
  4.  
  5. // de tu consulta SQL
  6. $asignados = [4,6,12,17,18,2,19,10];
  7.  
  8. if (count($asignados)==20)
  9.     echo "Todos asingados!";
  10.    
  11. else{
  12.     $libres = array_diff($todos,$asignados);
  13.     shuffle($libres); // mezclo
  14.  
  15.     echo $libres[0];
  16. }
Creo que es más o menos lo que yo coloque.... yo no puse un ciclo para llenar el arreglo de 1 al 20 pues no se si esos valores tambien los tiene en base de datos, simplemente quise mostrarlos de forma explicita. Tambien creo que el rand es más efectivo para que sea un "valor aleatorio" según lo que el dijo, si accede a la posición 0 del array $diff siempre le traera el primer registro que "no se consiga" como asignado, lo cual no lo veo del todo "aleatorio"


Saludos.
__________________
Lo imposible es lo posible visto por los ojos de un incapaz.
Si te sirve la respuesta. dale + al karma.
Saludos