Foros del Web » Programando para Internet » PHP »

Arreglos con valores repetidos

Estas en el tema de Arreglos con valores repetidos en el foro de PHP en Foros del Web. Hola Buenos dias... Yo tengo un arreglo de tres dimensiones asi: $radios3[$a][$i][$j]; //lleno de valores Resulta que yo quiero eliminar los valores repetidos que hay ...
  #1 (permalink)  
Antiguo 26/01/2009, 10:28
(Desactivado)
 
Fecha de Ingreso: enero-2009
Mensajes: 103
Antigüedad: 15 años, 10 meses
Puntos: 0
Arreglos con valores repetidos

Hola Buenos dias... Yo tengo un arreglo de tres dimensiones asi:
$radios3[$a][$i][$j]; //lleno de valores

Resulta que yo quiero eliminar los valores repetidos que hay en los registros q recoore la variable $j en el arreglo $radios3. Cuando yo hago el metodo array_unique de esta forma
$radios_3=array_unique($radios3);

y muestro el resultado de esta forma:

foreach($radios_3 as $a => $va1)
{
foreach($va1 as $i => $va2)
{
foreach($va2 as $j => $va3)
{
echo $va3;
echo " ";
}
}
}
Y los valores que se muestran siguen siendo repetidos, ¿Como hago para eliminar los repedtidos?? x favor ayudenme he intentado mil formas y no se como hacerlo, Gracias
  #2 (permalink)  
Antiguo 26/01/2009, 10:41
Avatar de JoniJnm  
Fecha de Ingreso: mayo-2007
Ubicación: Madrid
Mensajes: 264
Antigüedad: 17 años, 6 meses
Puntos: 4
Respuesta: Arreglos con valores repetidos

Si tienes

radio3
algo1
algo2
algo3

radio3
cosa1
cosa2
algo3

Quieres que se borre el "algo3" de alguno de los dos? Prueba esto:

Código PHP:
$array = array();

foreach (
$radios3 as $a=>$i) {
    foreach (
$i as $b=>$j) {
        foreach (
$j as $c=>$k) {
            if (
in_array($k,$array) {
                unset(
$radios3[$a][$b][$c]);
            }
            else {
                
$array[] = $k;
            }
        }
    }

__________________
JoniJnm.es
  #3 (permalink)  
Antiguo 27/01/2009, 15:42
(Desactivado)
 
Fecha de Ingreso: enero-2009
Mensajes: 103
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Arreglos con valores repetidos

Hola!! lo que quiero es eliminar los repetidos de la fila 3, eso es todo, pero no entiendo tu codigo, no se q estas validando dentro del if. para que me sirve el "in_array" q tienes ahi. No se si me explique... Xfa plis explicame eso
  #4 (permalink)  
Antiguo 27/01/2009, 17:13
Avatar de darkasecas  
Fecha de Ingreso: marzo-2005
Ubicación: SantaCata, NL, Mexico
Mensajes: 1.553
Antigüedad: 19 años, 8 meses
Puntos: 77
Respuesta: Arreglos con valores repetidos

in_array es una funcion de php que devuelve verdadero si el elemento pasado como primer parametro existe en el array pasado como segundo parametro.

(A menos que me equivoque en algo) ese codigo inicializa $array como un array vacio, luego recorre tu array tridimensional, y checa cada elemento, si ese valor ya existe en $array, borra ese elemento (de $radios3, no de $array), y si el valor no existe, lo agrega a $array
  #5 (permalink)  
Antiguo 29/01/2009, 08:22
(Desactivado)
 
Fecha de Ingreso: enero-2009
Mensajes: 103
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Arreglos con valores repetidos

hola!! Voy a ser mas especifico en lo que quiero hacer. Tengo este arreglo $radios3 de tres dimensiones $radios3[$a][$i][$j]. Quiero eliminar los repetiddos que recorre la variable $j en el arreglo, es decir los valores que estan en la 3era dimension del arreglo.

if($radios3!=0 and $radios3!="")
{
foreach($radios3 as $a => $va1)
{
foreach($va1 as $i => $va2)
{
foreach($va2 as $j => $va3)
{
echo $va3;
echo " ";
}
}
}
}

El resultado del codigo anterior es el siguiente:

4106 4098 4215 4216 4199 4116 4096 4093 4208 4076 4278 4387 4414 4100 4224 4092 4094 4081 4087 4100 4087 4327 4094 4100

Como se ve ahi, el codigo 4100 se repite hasta 3 veces, tambien el codigo 4094 se repite dos veces al igual que 4087.

Lo que necesito es un codigo q me ayude a resolver ese problema xq ya he intentado de muchas manereas con el array_unique pero no he podido eliminar esos repetios. Xfavor que alguen me pueda ayudar con eso. Gracias
  #6 (permalink)  
Antiguo 29/01/2009, 11:56
Avatar de JoniJnm  
Fecha de Ingreso: mayo-2007
Ubicación: Madrid
Mensajes: 264
Antigüedad: 17 años, 6 meses
Puntos: 4
Respuesta: Arreglos con valores repetidos

Pues lo que te puse arriba...

Código PHP:
$array_auxiliar = array();

if (
is_array($radios3)) {
    foreach (
$radios3 as $a=>$i) {
        foreach (
$i as $b=>$j) {
            foreach (
$j as $c=>$k) {
                if (
in_array($k,$array_auxiliar) {
                    unset(
$radios3[$a][$b][$c]);
                }
                else {
                    
$array_auxiliar[] = $k;
                }
            }
        }
    }
}

if (
is_array($radios3)) {
    foreach(
$radios3 as $va1) {
        foreach(
$va1 as $va2) {
            foreach(
$va2 as $va3) {
                echo 
$va3." ";
            }
        }
    }

Sino quieres modificar el array $radio3, entonces usa esto:
Código PHP:
$array_auxiliar = array();

if (
is_array($radios3)) {
    foreach (
$radios3 as $i) {
        foreach (
$i as $j) {
            foreach (
$j as $k) {
                if (!
in_array($k,$array_auxiliar) {
                    
$array_auxiliar[] = $k;
                    echo 
$k" ";
                }
            }
        }
    }

__________________
JoniJnm.es
  #7 (permalink)  
Antiguo 29/01/2009, 15:07
(Desactivado)
 
Fecha de Ingreso: enero-2009
Mensajes: 103
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Arreglos con valores repetidos

Gracias gracias gracias mi hermano eres el mejor!!!! No sabes cuanto me haz ayudado con eso.... gracias una vez mas. Lo q mas me sorprende es q ni siquiera tuvistes q guardar el nuevo $radios3 sin valores repetidos en otro nuevo arreglo, jejeje...
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 12:52.