2017-07-31 19 views
-2

カートセッション(配列)内にいくつかの項目を追加しましたが、次のコードを書きましたが、それは私のためには動作しません。多次元配列cakephpから行を削除する方法

public function deletecart() { 
$this->loadModel("Product"); 
    if($this->Session->check('cart') AND count($this->Session->read('cart'))>0) 
    { 
     foreach ($this->Session->read('cart') as $key => $value) { 
     if ($value['0']['Product']['id'] == "12") { 
     unset($this->Session->read('cart')[$key]); 
     } 
     } 
    } 
} 

は、ここに私のセッションのデバッグ値

array(
    '[0]' => array(
     (int) 0 => array(
      'Product' => array(
       'id' => '8', 
       'category' => 'Pendant', 
      ) 
     ) 
    ), 
    (int) 1 => array(
     (int) 0 => array(
      'Product' => array(
       'id' => '12', 
       'category' => 'Pendant' 
      ) 
     ) 
    ) 
) 

答えて

1

であることはできません。このような未設定のセッションキー値。セッション変数の値を一時変数に格納する必要があります。

$sessionArr = $this->Session->read('cart'); 
foreach ($sessionArr as $key => $value) { 
    if ($value['0']['Product']['id'] == "12") { 
// Unset key 
     unset($sessionArr[$key]); 
    } 
} 

// Assign $sessionArr value to cart key 
$this->Session->write('cart',$sessionArr); 
+0

これも機能しません。 – prameshwer

+0

@prameshwer。私は私のPCでそれをテストし、それが動作しています。コードを共有します。 –

+1

本当にありがとうございました:) – prameshwer

関連する問題