我正在使用会话和2D数组创建一个购物车我的问题是我想要更改2D数组中一个数组的内容,我有一个订单ID只是为了确保它更改正确的数组,这里&#39 ;我的代码请帮助我;
这是插入新项目的代码:
if(isset($_POST['addtocart'])){
$count= count($_SESSION['cart']);
$newproduct= array(
'id' => $count,
'code' => $_SESSION['code'],
'color' => $_POST['color'],
'type' => $_POST['type'],
'size' =>$_POST['size'],
'quantity' => 1
);
$_SESSION['cart'][]= $newproduct;
}
$_SESSION['cart']
是我的2D数组的名称。现在这里是样本列表:
$_SESSION['cart']=> array([0] =>(array
order=> 0,
code=> 123,
color=> blue,
type=> us,
size=> M.
quantity => 1 );
([1] =>(array
order=> 1,
code=> 125,
color=> red,
type=> uk,
size=> S.
quantity => 1 );
现在我想更新ID为125的数组的数量,但我想我不知道id。在我的购物车列表中,我有一个选择框,可在选择选项时自动提交。这是我的代码;
<select name="quantity1" id="quantity" onchange="javascript: submit()" >
<option value="<?php echo $item['quantity']; ?>"><?php echo $item['quantity']; ?></option>
<?php
$sql2 = "SELECT * from color_variation
WHERE color='$color'
AND size='$size'
AND size_type='$type'";
$q2= $conn->query($sql2);
$q2->setFetchMode (PDO::FETCH_ASSOC);
while($r2 = $q2->fetch())
{
$x= $r2['quantity'];
}
for($y=1; $y<=$x; $y++){
if($y== $r1['quantity']){
} else{
?>
<option value="<?php echo $y; ?>"><?php echo $y; ?></option>
<?php
}
}
?>
</select>
当它提交我的代码以更新特定数组键的数组时:
if(isset($_POST['quantity1'])){
$quantity = $_POST['quantity1'];
$cart= $_SESSION['cart'];
foreach($cart as &$value)
{
$value['quantity']= $quantity;
}
}