Foros del Web » Programando para Internet » PHP »

Recorrer y comparar un array

Estas en el tema de Recorrer y comparar un array en el foro de PHP en Foros del Web. Buenas tardes. En un array almaceno 12 numeros aleatorios que salen de un rand necesito recorrer ese array y reemplazar los numeros repetidos por otros ...
  #1 (permalink)  
Antiguo 23/04/2009, 14:20
 
Fecha de Ingreso: enero-2009
Mensajes: 24
Antigüedad: 15 años, 3 meses
Puntos: 0
Recorrer y comparar un array

Buenas tardes.

En un array almaceno 12 numeros aleatorios que salen de un rand necesito recorrer ese array y reemplazar los numeros repetidos por otros hasta que en el array no se repita ninguno.
Tengo esto:

Código PHP:
for($i=1$i<=12$i++)
    {
        
$variable[] = rand(1,22);
    } 
Ahi ya almaceno todos los 12 numeros aleatorios en el vector pero como recorro el array para comparar posicion por posicion para descartar el numero que se repita.
Gracias.
  #2 (permalink)  
Antiguo 23/04/2009, 14:28
f0n
 
Fecha de Ingreso: abril-2009
Mensajes: 54
Antigüedad: 15 años
Puntos: 1
Respuesta: Recorrer y comparar un array

Prueba con es.php.net/array_unique
  #3 (permalink)  
Antiguo 23/04/2009, 16:27
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Recorrer y comparar un array

Sino puedes hacer:
Código php:
Ver original
  1. <?php
  2. for($i = 0; $i < 12; $i++) {
  3.   $num = rand(1,22);
  4.   if(in_array($num, $variable)) {
  5.     $i--; //esto obliga a que el bucle se ejecute 1 vez mas si el numero ya existe en el array
  6.   } else {
  7.     $variable[] = $num;
  8.   }
  9. }
  10. ?>
  #4 (permalink)  
Antiguo 24/04/2009, 08:48
 
Fecha de Ingreso: enero-2009
Mensajes: 24
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Recorrer y comparar un array

Muchas gracias, la respuesta de Ronruby me sirvió eso era lo que necesitaba.
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 07:55.