我有一个简单的购物车数组,如果用户再次选择相同的产品,我想更新它。如果他们的购物车中已经有 5 支铅笔,并且他们又向购物车中添加了 4 支铅笔,我希望他们的购物车中有 9 支铅笔,而不是 5 支和 4 支铅笔的两个条目。
我有这个代码:
$sub = array("id" => $_POST['pID'], "name" => $_POST['pName'], "price" => $_POST['pPrice'], "quantity" => (int) $_POST['pQuant']);
$updated = false;
foreach($cart as $c)
{
if($c['id']==$_POST['pID']) {
var_dump($c);
echo "<br>";
$c['quantity'] += (int) $_POST['pQuant'];
var_dump($c);
echo "<br>";
var_dump($cart);
echo "<br>";
$updated = true;
}
}
if(!$updated) {$cart[] = $sub;}
由于一些愚蠢的原因,(我确定这是我在这里遗漏的一个非常明显的事情),第一个var_dump
$c 很好。那是原始值。然后第二个var_dump
,将数字添加到它上面。但是在第三个var_dump
,的$cart
,值没有改变?
我不明白为什么。