Why would the assignment not update the $cat_products item?
Is there something I'm not aware of?
// $cat_products has 18 items
echo $cat_products[0]['quantity']; // 103
foreach($cat_products as $product) {
$product['quantity'] = 0;
} // foreach($cat_products as $product)
echo $cat_products[0]['quantity']; // STILL 103