-1

我有一个会话数组$_SESSION['cart']

例如它的价值为

Array
(
    [0] => 
    [1] => Array
        (
            [item_id] => 1420
            [item_qty] => 1
        )
    [2] => Array
        (
            [item_id] => 1522
            [item_qty] => 1
        )
)

现在假设我有item_id = 1420

现在我想增加 item_id = 1420 的item_qty并且 必须将它设置在该 SESSION 数组中。

我试过了:

  foreach($_SESSION['Cartquantity'] as $key => $d)
    {
         if(isset($d)) {
                   if($d['item_id'] == $_GET['item_id'])
                   {
                        $d['item_quntity'] = $d['item_quantity']+1;
                   }
           }
            else{

               }
   }

它不工作?

4

7 回答 7

3

您正在迭代,$_SESSION['Cartquantity']但告诉我们该数组存储在$_SESSION['cart'].

另外,这个:

$d['tem_quntity'] = $d['item_quantity']+1;

应该:

$d['item_qty'] = $d['item_qty']+1;

最后,您需要通过在条件中添加与号 ( ) 来进行$d引用。&foreach

foreach($_SESSION['cart'] as $key => &$d)
    {
         if($d) {
                   if($d['item_id'] == $_GET['item_id'])
                   {
                        $d['item_qty'] = $d['item_qty']+1;
                   }
           }
            else{

               }
   }
于 2013-03-07T10:52:12.130 回答
1

使用参考 &$d

foreach($_SESSION['Cartquantity'] as $key => &$d)
    {
         if($d) {
                   if($d['item_id'] == $_GET['item_id'])
                   {
                        $d['tem_quntity'] = $d['item_quantity']+1;
                   }
           }
            else{

               }
   }

或者

foreach($_SESSION['Cartquantity'] as $key => $d)
    {
         if($d) {
                   if($d['item_id'] == $_GET['item_id'])
                   {
                        $_SESSION['Cartquantity'][$key]['item_quntity'] = $d['item_quantity']+1;
                   }
           }
            else{

               }
   }
于 2013-03-07T10:52:18.043 回答
0

尝试检查!empty($array)

if(!empty($d))

因为它是数组,所以你需要检查它里面是否没有任何元素。

如果您想知道数组是否已定义,请使用isset($d).

如果您想知道是否定义了特定键,请使用isset($d['item_id']).

如果您想知道一个数组是否不为空并且有键值对,请使用!empty($d).

于 2013-03-07T10:50:48.513 回答
0

用它:

foreach($_SESSION['cart'] as $key => $d)
    {
         if($d) {
                   if($d['item_id'] == $_GET['item_id'])
                   {
                        $d['tem_quntity'] = $d['item_qty']+1;
                   }
           }
            else{

               }
   }
于 2013-03-07T10:51:24.580 回答
0

改变这个

$d['tem_quntity'] = $d['item_quantity']+1;

$d['item_qty'] = $d['item_qty']+1;
于 2013-03-07T10:53:22.053 回答
0

你可以打电话

foreach ($_SESSION['Cartquantity'] as $value))
{
  if(isset($value))
  {
   if($value['item_id'] == $_GET['item_id'])
     {
      $value['item_quntity'] = $value['item_quantity']+1;
     }
  }
  else
  {

  }

}
于 2013-03-07T10:55:37.747 回答
0
foreach($_SESSION['cart'] as $key=>$val)
{
    foreach($val as $subK)
    {
       if($_GET["item_id"]==$subk["item_id"])
       {
            $_SESSION['cart'][$key]["item_id"]=$_SESSION['cart'][$key]["item_quantity"]+1;
       }
    }
}
于 2013-03-07T11:04:55.490 回答