Ver Mensaje Individual
  #2 (permalink)  
Antiguo 20/08/2011, 06:20
Avatar de Hazuki
Hazuki
 
Fecha de Ingreso: mayo-2011
Mensajes: 34
Antigüedad: 13 años
Puntos: 7
Respuesta: Función Unset

Yo lo conseguí de esta forma:

Código PHP:
$v = array(1,1,3,5,5,7,7,9);

// Guardamos la longitud inicial de $v
$n count($v);
for(
$i=0$i<$n-1$i++) {
    
$j=$i+1;

    
// Comprobamos que exista el índice $i, de lo contrario el bucle continúa
    
if (isset($v[$i])) {
        while(
$j<$n) {

            
// Comprueba si el índice $j existe y es igual al índice $i
            
if(isset($v[$j]) && $v[$i]==$v[$j])
                unset(
$v[$j]);

            
// De lo contrario saltamos al siguiente $j
            
else
                
$j++;
        }
    }

Lo que pasaba era que al entrar al bucle "for", la función "count($v)" devuelve un valor, y cada vez que entras al bucle "while" devuelve otro distinto porque vuelve a contar la variable, por lo que si has borrado un índice te devolverá un número menor al inicial.

Entonces, lo que hice fue guardar la longitud inicial de $v en $n y en cada bucle, tanto "for" como "while", comprobar que existe el índice en el que se encuentran para evitar errores.

Espero que te sirva.