如何使用特定的数组键更新数组中的数据?

时间:2016-03-07 02:06:37

标签: php html

我正在使用会话和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;
    }
}

0 个答案:

没有答案