Bueno debes tener clara una ruta de variables, o sea un algoritmo...
 
Por ejemplo...
Ingreso un producto...
Si no existe (en el arreglo) lo inserto (con array_push)...
si ya existe (en el arreglo) no lo inserto como uno nuevo, sino que a la cantidad que ya esta del que existe (en el arreglo), le sumo la cantidad del que estoy insertando.... 
Chaop! 
PD: aca tienes un ejemplo de lo que te digo... 
http://www.desarrolloweb.com/articul....php?manual=56