0

私は次のコードを持っています。elseifパーツがすでに配列にあるかどうかをチェックしたいのですが、配列に新しいものを追加するのではなく、それを$pId増やしたいのです。quantityprice$pId

間違った方法を使用しているかどうか、または配列構造が間違っているかどうかはわかりませんが、それらの値を増やすことはできません

if (!isset($_SESSION['cart'])) {
    $_SESSION['cart'] = array();
    $_SESSION['cart']['pid'][] = $pid;
    $_SESSION['cart']['pid']['price'] = $price;
    $_SESSION['cart']['pid']['quantity'] = $quantity;
    $_SESSION['cart']['total_price'] = $price;
    $_SESSION['cart']['total_items'] = $quantity;
}elseif(array_key_exists($pid, $_SESSION['cart'])){
    //increase price
    //increase quantity
}else{
    $_SESSION['cart']['pid'][] = $pid;
    $_SESSION['cart']['pid']['price'] = $price;
    $_SESSION['cart']['total_price'] += $price;
    $_SESSION['cart']['total_items'] += $quantity;
}
4

1 に答える 1

1

簡単に選択できるように、配列に次元を追加しました。

if (!isset($_SESSION['cart'])) {
    $_SESSION['cart'] = array('pid' => array(), 'total_price' => 0, 'total_items' => 0);
    $_SESSION['cart']['pid'][$pid] = array();
    $_SESSION['cart']['pid'][$pid]['price'] = $price;
    $_SESSION['cart']['pid'][$pid]['quantity'] = $quantity;
    $_SESSION['cart']['total_price'] = $price;
    $_SESSION['cart']['total_items'] = $quantity;
}elseif(array_key_exists($pid, $_SESSION['cart']['pid'])){
    $_SESSION['cart']['pid'][$pid]['price'] = 'new price';
    $_SESSION['cart']['pid'][$pid]['quantity'] = 'new quantity';
}else{
    $_SESSION['cart']['pid'][$pid]['price'] = $price;
    $_SESSION['cart']['total_price'] += $price;
    $_SESSION['cart']['total_items'] += $quantity;
}

何の略かはわかりませんpidが、一見、わかりやすいとは言えません。たぶんproducts、より良い鍵になるでしょうか?

于 2012-04-25T22:50:24.890 に答える