-1

SESSION 配列$_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

あなたはによって呼び出すことができます

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

を確認してみてください!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=>$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 に答える
0

これを変える

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

$d['item_qty'] = $d['item_qty']+1;
于 2013-03-07T10:53:22.053 に答える
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 に答える