Ver Mensaje Individual
  #5 (permalink)  
Antiguo 25/06/2014, 21:10
Steeep
 
Fecha de Ingreso: diciembre-2012
Mensajes: 5
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Obtener elementos de array al azar sin repetirse

Cita:
Iniciado por Alexis88 Ver Mensaje
Podrías hacerlo así:

Código PHP:
Ver original
  1. $array = array(2, 2, 1, 3, 3, 3, 4, 4, 5, 5, 6);
  2. $nuevo = array();
  3. $nuevo[] = $array[array_rand($array)];
  4. $i = 1;
  5. while ($i < 3)
  6.     if (!in_array($aux = $array[array_rand($array)], $nuevo)){
  7.         $nuevo[] = $aux;
  8.         $i++;
  9.     }

De ese modo, solo insertas un valor del array en el nuevo array si este no ha sido asignado previamente, hasta 3 valores como máximo. La función [URL="http://www.php.net/manual/es/function.array-rand.php"][inline]array_rand[/inline][/URL] selecciona un valor aleatorio del array y devuelve su clave, por eso coloco el valor aleatorio entre corchetes [], para así asignar a $aux el valor obtenido. Puedes hacerlo más eficiente, si gustas.

Saludos
Es buen la idea, solo que no me toma los valores del array, es como si generara otros o los sumara.

En vez de elegir 1,2,3,4,5 o 6, me da 0, 7, 9 etc.

Porque da esos valores que no existen?

Gracias por toda la ayuda ^^