Estupido problema con SHUFFLE..

Iniciado por Mokonauta, 16 Febrero 2014, 01:51 AM

0 Miembros y 2 Visitantes están viendo este tema.

Mokonauta

Buen día a todos,

Mi problema es tan estupido que me siento demasiado estupido posetando esto en el foro pero no encuentro solucion y ya me arde la cabeza! :(

Ok, empiezo, la idea es sortear 5 lugares (1, 2, 3, 4, 5) de manera aleatoria entre 5 usuarios, al prinicipio dije "Fácil!, solo los acomodo en un arreglo y le hago un shuffle() y listo, me debe regresar el arreglo con con los números aleatorios" pero estaba muy equivocado.

En efecto shuffle() altera el arreglo de manera que los valores quedan desordenados aleatoriamente (como lo deseado) pero al momento de impromir, OHH problema!  :o

Solo prueben el siguiente código para que vean a lo que me refiero:

Código ("php") [Seleccionar]

$nums = range(1,5); // Se crea arreglo con el rango de numeros del 1 al 5
shuffle($nums); // Altera el arreglo y acomoda los numeros de manera aleatoria

/*
* Hasta aquí si hago un var_dumo($nums); me regresa el array alterado
* Ahora imprimamos
*/

foreach($nums as $num){
  echo $num.'<br />';
}

// Su puestamente deberia devolver una lista renglon a renglon con los numeros aleatorios, pero en vez de eso regresa esa lista 5 veces, ejemplo:
// 124534253413415242534134152



Es como si por cada vez q se imprimiera un nuevo numero se hiciera el shuffle otra vez y empezara desde el principio, no tiene sentido.

Ya probe asigandole el shuffle a una variable, tambien utilizando un for para que solo imprima los primeros 5 numeros pero el codigo no para hasta que termina, es decir, por cada ciclo for imprime 5 numeros aleatorios, en total 25 numeros!!!

Alguien seria tan amable de iluminarme?
Gracias  ;D
El destino decide hasta que es desafiado por los condenados.

Mokonauta

Olvidenlo, en efecto soy tan estupido que estaba incluyendo mi funcion en otro foreach ... :/

Saludos
El destino decide hasta que es desafiado por los condenados.