Ver Mensaje Individual
  #2 (permalink)  
Antiguo 09/02/2019, 08:53
Avatar de xfxstudios
xfxstudios
 
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 9 años, 4 meses
Puntos: 263
Respuesta: Checar valor repetido en un array y si lo encuentra lo incremente a +1

Yo no te recomendaria como lo estas haciendo, pues tienes que estar recorriendo el array a cada rato y tener lineas demás, yo en tu lugar utilizaria el id del producto como clave dentro del array, para así hacer una busqueda más rápida, de esta manera:

Código PHP:
Ver original
  1. $productos = [];
  2.  
  3. function agrega(array $prod, bool $incre = true){
  4.     global $productos;
  5.  
  6.     if(array_key_exists($prod['id'],$productos)){
  7.         //incremento la cantidad
  8.         if($incre){
  9.             ++$productos[$prod['id']]['cantidad'];
  10.         }else{
  11.             //si el producto llega a cero o menos, lo eliminamos del array
  12.             --$productos[$prod['id']]['cantidad'];
  13.             if($productos[$prod['id']]['cantidad']<=0){
  14.                 unset($productos[$prod['id']]);
  15.             }
  16.         }
  17.     }else{
  18.         //agrego el producto nuevo
  19.         $productos[$prod['id']] = [
  20.             'cantidad' => 1,
  21.             'base'     => $prod['nombre'],
  22.             'costo'    => $prod['precio'],
  23.             'status'   => 1
  24.         ];
  25.     }
  26. }
  27.  
  28. agrega(['id'=>1010,'nombre'=>'camisa','precio'=>125.36]);
  29. agrega(['id'=>1010,'nombre'=>'camisa','precio'=>125.36]);
  30. agrega(['id'=>1010,'nombre'=>'camisa','precio'=>125.36]);
  31. agrega(['id'=>1020,'nombre'=>'zapatos','precio'=>500.56]);
  32. agrega(['id'=>1010,'nombre'=>'camisa','precio'=>125.36], false);
  33. agrega(['id'=>1045,'nombre'=>'short','precio'=>50.00]);
  34.  
  35. var_dump($productos);

Esa función te incrementa la cantidad en 1 si la clave existe si no lo agrega al array final.
__________________
[email protected]
HITCEL

Última edición por xfxstudios; 09/02/2019 a las 09:31