Ver Mensaje Individual
  #4 (permalink)  
Antiguo 25/06/2014, 20:55
Avatar de Alexis88
Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 6 meses
Puntos: 977
Respuesta: Obtener elementos de array al azar sin repetirse

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 array_rand 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
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Última edición por Alexis88; 25/06/2014 a las 21:06 Razón: Línea repetida