Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/04/2009, 02:46
onslaught
 
Fecha de Ingreso: abril-2009
Mensajes: 10
Antigüedad: 15 años
Puntos: 0
Pregunta Eliminar duplicados y aumentar cantidad

Hola vengo a solicitarles un poco de su ayuda con un problema que tengo con un arreglo.

La situacion es la siguiente, estoy haciendo mi propio carro de compra y ya estoy en los puntos finales, para ser sincero hubo momentos en los que me daba de topes, pero en fin, mi problema es a la hora de insertar articulos en la cesta ya que quiero evitar que se repitan y en vez de eso que al querer insertar un articulo ya existente este solo aumente en 1 la cantidad.

Como se comporta el sistema??? Bueno los valores que inserto en el arreglo se pasan via GET y luego los inserto de esta manera:

Código PHP:
case 'add':
       if (!
$cart
        {
          
$cart[] = array("ID"=>$id,"Cantidad"=>$cantidad,"Precio"=>$precio);
    } 
       else 
        {
     
array_push($cart,array("ID"=>$id,"Cantidad"=>$cantidad,"Precio"=>$precio));
        } 
Como pueden ver es algo muy sencillo lo que estoy haciendo y $cart es mi variable que contiene todo el arreglo.

Ahora bien utilizando print_r($cart); puedo ver como esta conformado el arreglo, que para darnos una idea quedaria de esta manera:

Código:
Array
(
    [0] => Array
        (
            [ID] => Articulo numero uno
            [Cantidad] => 1 
            [Precio] => 40.00
        )

    [1] => Array
        (
            [ID] => Articulo numero dos
            [Cantidad] => 1 
            [Precio] => 850.00
        )

    [2] => Array
        (
            [ID] => Articulo numero tres
            [Cantidad] => 1 
            [Precio] => 33.80
        )

    [3] => Array
        (
            [ID] => articulo numero uno
            [Cantidad] => 1 
            [Precio] => 40.00
        )

)
Lo que yo quiero es que en mi arreglo no se repita el articulo numero uno y que el que ya esta en el arreglo aumente la cantidad ( es decir +1) ya le estuve buscando y logre hacer algo enviando el indice del arreglo, con unset, con in_array y con array_search pero sinceramente aun no logro hacerlo.

Ojala que alguien pueda ayudarme y de ante mano gracias.