Foros del Web » Programando para Internet » PHP »

Como seleccionar el valor de un array aleatoriamente.

Estas en el tema de Como seleccionar el valor de un array aleatoriamente. en el foro de PHP en Foros del Web. Hola amigos verán, lo que pretengo hacer (que no he podido) es mostrar una imagen aleatoria tomandola la ruta de la imagen desde la DB. ...
  #1 (permalink)  
Antiguo 31/05/2010, 14:33
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 17 años, 3 meses
Puntos: 188
Como seleccionar el valor de un array aleatoriamente.

Hola amigos verán, lo que pretengo hacer (que no he podido) es mostrar una imagen aleatoria tomandola la ruta de la imagen desde la DB.

Primero se me ocurrio consultar la base de datos y meter todas las imagenes obtenidas deacuerdo a esta consulta en arrays. esto me general algo como esto:

Código:
Array
(
    [0] => http://midominio.com/images1.jpg
    [1] => http://midominio.com/images2.jpg
    [2] => http://midominio.com/images3.jpg
    [3] => http://midominio.com/images4.jpg
    [4] => http://midominio.com/images5.jpg
)
Y ahora pregunto. ¿Como puedo seleccionar alguno de esos arrays de manera aleatoria.

He estado haciendo experimentos con las funciones random pero no he podido hacerlo funcionar.

El código actual con el que obtengo el array es este:
Código PHP:
Ver original
  1. <?php
  2. $sql = "SELECT * FROM user";
  3. $resultado=mysql_query($sql);
  4.  
  5. function toArray($resultado)
  6. {
  7.         while ($fila = mysql_fetch_array($resultado, MYSQL_ASSOC))
  8.         {
  9.                 $registros[] = $fila['Host'];
  10.         }
  11.         return $registros;
  12. }
  13.  
  14. echo "<pre>";
  15. print_r(toArray($resultado));
  16. echo "</pre>";
  17. ?>

Ustedes me podrían proponer una mejor programación por favor.

Les agradesco mucho
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.
  #2 (permalink)  
Antiguo 31/05/2010, 14:44
rpv
 
Fecha de Ingreso: febrero-2010
Mensajes: 275
Antigüedad: 14 años, 10 meses
Puntos: 10
Respuesta: Como seleccionar el valor de un array aleatoriamente.

Código PHP:
Ver original
  1. function toArray($resultado)
  2. {
  3.         while ($fila = mysql_fetch_array($resultado, MYSQL_ASSOC))
  4.         {
  5.                 $registros[] = $fila['Host'];
  6.         }
  7.         return $registros[mt_rand(0,count($registros)-1)];
  8. }


Añado: La función anterior para obtener un registro aleatorio de la consulta, sin embargo, también se puede generar un único registro aleatorio en la misma consulta:


Código SQL:
Ver original
  1. SELECT * FROM USER ORDER BY rand() LIMIT 1

De igual forma se puede optimizar más, ya que el rand() de mysql se conoce por su no muy buena eficiencia.
  #3 (permalink)  
Antiguo 31/05/2010, 14:47
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 15 años, 3 meses
Puntos: 214
Respuesta: Como seleccionar el valor de un array aleatoriamente.

Hola
Bueno, pues justo te iba a mencionar a random, mira en php.net sobre el tema
Pero si quieres traer una imagen aleatoria directamente por consulta de sql pues mira esto
saludos
  #4 (permalink)  
Antiguo 31/05/2010, 20:18
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 17 años, 3 meses
Puntos: 188
Respuesta: Como seleccionar el valor de un array aleatoriamente.

Muchas gracias amigos.

No conocía eso del mt_rand.

Gracias.
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.

Etiquetas: aleatoriamente, seleccionar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:24.