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$productos = [];
function agrega
(array $prod, bool
$incre = true){ global $productos;
//incremento la cantidad
if($incre){
++$productos[$prod['id']]['cantidad'];
}else{
//si el producto llega a cero o menos, lo eliminamos del array
--$productos[$prod['id']]['cantidad'];
if($productos[$prod['id']]['cantidad']<=0){
unset($productos[$prod['id']]); }
}
}else{
//agrego el producto nuevo
$productos[$prod['id']] = [
'cantidad' => 1,
'base' => $prod['nombre'],
'costo' => $prod['precio'],
'status' => 1
];
}
}
agrega(['id'=>1010,'nombre'=>'camisa','precio'=>125.36]);
agrega(['id'=>1010,'nombre'=>'camisa','precio'=>125.36]);
agrega(['id'=>1010,'nombre'=>'camisa','precio'=>125.36]);
agrega(['id'=>1020,'nombre'=>'zapatos','precio'=>500.56]);
agrega(['id'=>1010,'nombre'=>'camisa','precio'=>125.36], false);
agrega(['id'=>1045,'nombre'=>'short','precio'=>50.00]);
Esa función te incrementa la cantidad en 1 si la clave existe si no lo agrega al array final.