Foros del Web » Programando para Internet » PHP »

Eliminar duplicados

Estas en el tema de Eliminar duplicados en el foro de PHP en Foros del Web. Hola gente, como va? Tengo un array(principal) con muchos arrays(asociativos) dentro. El problema es que tengo algunos productos con el mismo numero de "model" dentro ...
  #1 (permalink)  
Antiguo 17/04/2014, 12:42
 
Fecha de Ingreso: marzo-2010
Mensajes: 28
Antigüedad: 14 años, 1 mes
Puntos: 0
Pregunta Eliminar duplicados

Hola gente, como va?

Tengo un array(principal) con muchos arrays(asociativos) dentro. El problema es que tengo algunos productos con el mismo numero de "model" dentro de los arrays(asociativos) y salen dos veces en mi lista de productos cuando recorro el array(principal), y yo quiero que solo aparezcan una vez.

Mi codigo php:
Código PHP:
Ver original
  1. foreach ($results as $result) {
  2.                        
  3.                
  4.                 if ($result['quantity'] <= 0) {
  5.                 $rstock = $result['stock_status'];
  6.                 } elseif ($this->config->get('config_stock_display')) {
  7.                 $rstock = "Disponibilidad: " . $result['quantity'];
  8.                 } else {
  9.                 $rstock = "Disponible";
  10.                 }
  11.                
  12.                 $cantidad = strlen($result['name']);
  13.                 $final = $cantidad +1;
  14.                 $name = str_pad($result['name'], $final);
  15.                 $nombre = substr_replace($name, ' ', -6, -1);
  16.  
  17.                 $this->data['products'][] = array(
  18.                     'product_id'  => $result['product_id'],
  19.                     'model'       => substr($result['model'], 0, 9),
  20.                     'thumb'       => $image,
  21.                     'Disponibilidad'   => $rstock,
  22.                     'name'        => $nombre,
  23.                     'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, 100) . '..',
  24.                     'price'       => $price,
  25.                     'special'     => $special,
  26.                     'tax'         => $tax,
  27.                     'rating'      => $result['rating'],
  28.                     'reviews'     => sprintf($this->language->get('text_reviews'), (int)$result['reviews']),
  29.                     'href'        => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'])
  30.                 );
  31.        
  32.             }




Cada producto posee estos datos en la base de datos: (EJEMPLO)
["product_id"]=> string(5) "37131"
["model"]=> string(9) "045951899"
["thumb"]=> string(79) "http://ecommerce.qplus.com.ar:80/opencart/image/cache/data/noImagen-160x190.jpg"
["Disponibilidad"]=> string(10) "Disponible"
["name"]=> string(42) "ADAPTADOR CASIO CA/CC P/HR-8/HR-100-150 "
["description"]=> string(46) " ADAPTADOR CASIO CA/CC P/HR-8/HR-100-150 .."
["price"]=> string(7) "$120.00"
["special"]=> string(6) "$57.00"
["tax"]=> bool(false)
["rating"]=> int(0)
["reviews"]=> string(25) "Basado en 0 valoraciones."
["href"]=> string(106) "http://ecommerce.qplus.com.ar/librerias/index.php?route=product/product&path=6735&product_id=37131" } }

Como podria hacer para que detecte cuando dos productos tienen un mismo ["model"] y no guarde ese array, asi dsp no se muestra?

Última edición por pabliich; 17/04/2014 a las 12:54
  #2 (permalink)  
Antiguo 17/04/2014, 17:48
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Eliminar duplicados

SELECT DISTINCT * FROM tu_tabla WHERE.. etc

http://www.w3schools.com/sql/sql_distinct.asp
__________________
Salu2!
  #3 (permalink)  
Antiguo 19/04/2014, 20:25
 
Fecha de Ingreso: enero-2014
Mensajes: 7
Antigüedad: 10 años, 3 meses
Puntos: 1
Respuesta: Eliminar duplicados

Hola,

Creo que podrías utilizar una matriz asociativa para tu matriz de productos, así podrías evitar duplicados basándote en un índice, que sería tu código de producto. Así, al agregar una matriz de producto, quedaría de la siguiente forma:
Código:
                $this->data['products'][product_id] = array(...
Cuando requieras agregar una nueva matriz del producto, podrías verificar si existe mediante:

Código:
if( isset($this->data['products'][product_id])){
              $this->data['products'][product_id] = array(...
}
  #4 (permalink)  
Antiguo 21/04/2014, 11:46
 
Fecha de Ingreso: marzo-2010
Mensajes: 28
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Eliminar duplicados

Cita:
Iniciado por victorgspx Ver Mensaje
Hola,

Creo que podrías utilizar una matriz asociativa para tu matriz de productos, así podrías evitar duplicados basándote en un índice, que sería tu código de producto. Así, al agregar una matriz de producto, quedaría de la siguiente forma:
Código:
                $this->data['products'][product_id] = array(...
Cuando requieras agregar una nueva matriz del producto, podrías verificar si existe mediante:

Código:
if( isset($this->data['products'][product_id])){
              $this->data['products'][product_id] = array(...
}
Mira, te muestro como se genera el array, pongo 3, pero son muchos.


Yo quiero detectar cuando un ["Model"] se repite en dos matrices y mostrar solo una, en vez de mostrar las dos como en la imagen

Etiquetas: duplicados, html
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 08:23.