Foros del Web » Programando para Internet » PHP »

Quitar valores repetidos

Estas en el tema de Quitar valores repetidos en el foro de PHP en Foros del Web. al extraer los href de una web, me encuentro con un problema, los extraigo bien, pero me arroja mucho "href" repetidos ej: Código HTML: http://articulo.mercadolibre.cl/MLC-29755186-reloj-con-diamantes-acepto-permutas-ojala-notebook-u-otros-_JM ...
  #1 (permalink)  
Antiguo 11/08/2010, 17:52
 
Fecha de Ingreso: septiembre-2007
Mensajes: 150
Antigüedad: 17 años, 2 meses
Puntos: 1
Sonrisa Quitar valores repetidos

al extraer los href de una web, me encuentro con un problema, los extraigo bien, pero me arroja mucho "href" repetidos
ej:
Código HTML:
http://articulo.mercadolibre.cl/MLC-29755186-reloj-con-diamantes-acepto-permutas-ojala-notebook-u-otros-_JM
http://articulo.mercadolibre.cl/MLC-29755186-reloj-con-diamantes-acepto-permutas-ojala-notebook-u-otros-_JM
http://articulo.mercadolibre.cl/MLC-29381833-lenovo-x301-venta-o-permuta-4gb-en-ram-_JM
http://articulo.mercadolibre.cl/MLC-29381833-lenovo-x301-venta-o-permuta-4gb-en-ram-_JM
http://articulo.mercadolibre.cl/MLC-29783852-vendo-o-permuto-moto-suzuki-gsx-400-xs-impulse-azul-4t-_JM
http://articulo.mercadolibre.cl/MLC-29783852-vendo-o-permuto-moto-suzuki-gsx-400-xs-impulse-azul-4t-_JM
http://articulo.mercadolibre.cl/MLC-29756922-netbook-sony-vaio-dell-d630-canon-sx200is-se-permutan-_JM
http://articulo.mercadolibre.cl/MLC-29756922-netbook-sony-vaio-dell-d630-canon-sx200is-se-permutan-_JM
Alguien sabe como eliminar los valores repetidos?
cosa de entregar solo algo asi:
Código HTML:
http://articulo.mercadolibre.cl/MLC-29755186-reloj-con-diamantes-acepto-permutas-ojala-notebook-u-otros-_JM
http://articulo.mercadolibre.cl/MLC-29381833-lenovo-x301-venta-o-permuta-4gb-en-ram-_JM
http://articulo.mercadolibre.cl/MLC-29783852-vendo-o-permuto-moto-suzuki-gsx-400-xs-impulse-azul-4t-_JM
http://articulo.mercadolibre.cl/MLC-29756922-netbook-sony-vaio-dell-d630-canon-sx200is-se-permutan-_JM
este es mi codigo php
Código PHP:
$pagina "http://listado.mercadolibre.cl/permuto_OrderId_PRICE*DESC";
$primitivo = new DomDocument();
@
$primitivo->loadHTMLFile$pagina );
$porpatron = new DomXpath($primitivo);
$oRes $porpatron->query("//a/@href");
$i=0;
foreach(
$oRes as $listafinal) {
    echo 
$listafinal->nodeValue '<br>';
    
$i++;

  #2 (permalink)  
Antiguo 11/08/2010, 18:12
Avatar de De_la_Cuesta_13  
Fecha de Ingreso: abril-2009
Ubicación: Cali, Colombia.
Mensajes: 265
Antigüedad: 15 años, 7 meses
Puntos: 14
Respuesta: Quitar valores repetidos

Algo que se me ocurre es que cada fila la guardes en un arreglo (tal vez lo estés haciendo), y compares la última fila con la actual, es decir, si son iguales pues no la almacenas, caso contrario sí.

Código PHP:

$array 
= array();
$i 0;
foreach(
$oRes as $listafinal) { 
     if(
$i!=0){
           if(
$array[$i-1] != $listafinal->nodeValue
               
$array[] = $listafinal->nodeValue;
     }
     else
           
$array[] = $listafinal->nodeValue;
     
$i++;

Entonces, en $array quedan los valores sin repetirse.
Código HTML:
Ver original
  1. http://articulo.mercadolibre.cl/MLC-29755186-reloj-con-diamantes-acepto-permutas-ojala-notebook-u-otros-_JM
  2. http://articulo.mercadolibre.cl/MLC-29381833-lenovo-x301-venta-o-permuta-4gb-en-ram-_JM
  3. http://articulo.mercadolibre.cl/MLC-29783852-vendo-o-permuto-moto-suzuki-gsx-400-xs-impulse-azul-4t-_JM
  4. http://articulo.mercadolibre.cl/MLC-29756922-netbook-sony-vaio-dell-d630-canon-sx200is-se-permutan-_JM

Ojalá te sirva.
__________________
Sólo quien nunca nada hace, nunca se equivoca.
  #3 (permalink)  
Antiguo 11/08/2010, 21:21
 
Fecha de Ingreso: agosto-2002
Ubicación: Colón - Entre Rios - Argentina
Mensajes: 647
Antigüedad: 22 años, 3 meses
Puntos: 8
Respuesta: Quitar valores repetidos

Hola...
para hacerla mas facil, si lo tenes en un array, usa array_unique();
http://www.php.net/manual/en/function.array-unique.php

Saludos!
  #4 (permalink)  
Antiguo 12/08/2010, 07:48
 
Fecha de Ingreso: septiembre-2007
Mensajes: 150
Antigüedad: 17 años, 2 meses
Puntos: 1
De acuerdo Respuesta: Quitar valores repetidos

Cita:
Iniciado por fran86 Ver Mensaje
Hola...
para hacerla mas facil, si lo tenes en un array, usa array_unique();
http://www.php.net/manual/en/function.array-unique.php

Saludos!
estuve tratando con array_unique() pero no logro resolverlo, podrias guiarme un poco mas amigo?
  #5 (permalink)  
Antiguo 12/08/2010, 15:39
Avatar de Hayi  
Fecha de Ingreso: febrero-2002
Ubicación: Santa Fe - Santa Fe
Mensajes: 121
Antigüedad: 22 años, 9 meses
Puntos: 3
Respuesta: Quitar valores repetidos

Hola. Usando array_unique(), lograrás quitar los repetidos de un array pero tienes que tener en cuenta que, a la hora de mostrarlos, array_unique() elimina datos repetidos pero no así los índices, es decir, que en tu caso, quedaría 0 => primer elemento; 1 => ''; 2 => tercer elemento.... Pero... si usas ademas array_values(), te devuelve todos los valores e indexa numéricamente el array...

http://www.php.net/manual/es/function.array-values.php

Yo lo intentaría así (no te fíes mucho nada más! jajaja):

Código PHP:
$oRes array_values(array_unique($porpatron->query("//a/@href")));
for(
$i 0$i count($oRes); $i++) {

echo 
$oRes[$i]."<br>";


Saludos...

Etiquetas: quitar, repetidos
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 15:14.