Foros del Web » Programando para Internet » PHP »

Obtener valores al azar de un arreglo

Estas en el tema de Obtener valores al azar de un arreglo en el foro de PHP en Foros del Web. Tengo un arreglo de cadenas de N longitud, y quisiera obtener 3 valores de este arreglo sin que se repitan. ¿Existe alguna función en PHP ...
  #1 (permalink)  
Antiguo 27/10/2008, 11:07
Avatar de daPhyre
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: [email protected] (Redirects to 127.0.0.1)
Mensajes: 2.404
Antigüedad: 16 años, 1 mes
Puntos: 142
Obtener valores al azar de un arreglo

Tengo un arreglo de cadenas de N longitud, y quisiera obtener 3 valores de este arreglo sin que se repitan. ¿Existe alguna función en PHP que me permita esto? ¿O debo hacerlo con algún método que desconosca, y en tal caso somo sería?

Se agradece mucho su ayuda
__________________
<signs>daPhyre</signs>
Jugaa.me


Adios al dolor de cabeza de IE...
  #2 (permalink)  
Antiguo 27/10/2008, 11:37
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 9 meses
Puntos: 105
Respuesta: Obtener valores al azar de un arreglo

eso lo realiza el siguiente codigo:

Código PHP:
<?php
$arreglo
=array(9,7,7,1,2,3,4,5);
$nuevo_arreglo=array();
foreach(
$arreglo as $valor){
    if(
count($nuevo_arreglo)<3){
        if(
in_array($valor,$nuevo_arreglo)==false)$nuevo_arreglo[]=$valor;
    }else{ break;}
}
foreach(
$nuevo_arreglo as $valor){
    echo 
$valor;
}
?>
suerte.
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #3 (permalink)  
Antiguo 28/10/2008, 09:23
Avatar de daPhyre
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: [email protected] (Redirects to 127.0.0.1)
Mensajes: 2.404
Antigüedad: 16 años, 1 mes
Puntos: 142
Respuesta: Obtener valores al azar de un arreglo

Excelente, ya entiendo el código, no se me hubiera ocurrido algo similar, ya que no conocía algunos detalles para esta técnica.

Muchas gracias por tu ayuda
__________________
<signs>daPhyre</signs>
Jugaa.me


Adios al dolor de cabeza de IE...
  #4 (permalink)  
Antiguo 08/11/2008, 01:35
Avatar de daPhyre
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: [email protected] (Redirects to 127.0.0.1)
Mensajes: 2.404
Antigüedad: 16 años, 1 mes
Puntos: 142
Respuesta: Obtener valores al azar de un arreglo

No había podido probar el código hasta ahora. Analizándolo mejor, noté que no me devuelve los valores al azar como era mi idea, si no que solo me devuelve los tres primeros. Releyendo mi mensaje creo que no fui claro en mi solicitud.

Aun así me ha servido mucho, para continuar con mi cometido. Creo que puedo lograr hacer lo que quiero a partir de este código, aunque si alguien me puede echar una soga, le estaría muy agradecido
__________________
<signs>daPhyre</signs>
Jugaa.me


Adios al dolor de cabeza de IE...
  #5 (permalink)  
Antiguo 08/11/2008, 05:47
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 529
Antigüedad: 17 años, 5 meses
Puntos: 11
Respuesta: Obtener valores al azar de un arreglo

Tienes que usar la función rand() o la funcion array_rand().
A investigar.

Salu2
  #6 (permalink)  
Antiguo 08/11/2008, 22:38
Avatar de daPhyre
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: [email protected] (Redirects to 127.0.0.1)
Mensajes: 2.404
Antigüedad: 16 años, 1 mes
Puntos: 142
Respuesta: Obtener valores al azar de un arreglo

Gracias, ya lo logré

¿¡array_rand()!? Eso me hubiera evitado muchos problemas

Creo que lo implementaré mejor para que mi código sea más limpio y simple. Muchísimas gracias por la nota

Edito: Lo estuve revisando. Esto es como el cielo en la programación. ¡Adoro PHP más que nunca a cada rato! ¡¡¡Muchísimas gracias!!!
__________________
<signs>daPhyre</signs>
Jugaa.me


Adios al dolor de cabeza de IE...
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 13:02.