単純なカート配列があり、ユーザーが同じ製品を再度選択した場合に更新したいと思います。カートにすでに5本の鉛筆があり、カートにさらに4本の鉛筆を追加する場合は、5本と4本の鉛筆の2つのエントリではなく、9本の鉛筆をカートに入れてください。
私が持っているコード:
$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の最初のものは問題ありません。それが元の値です。次に、2番目var_dump
のに番号が追加されます。しかし、の3番目var_dump
に、$cart
値は変更されていませんか?
理由がわかりません。