如何在php会话中删除多个项目?

如何在php会话中删除多个项目?,php,session,Php,Session,嗨,我有一个购物车,但我的问题是,当我删除多个项目时,它不会处理,但如果我只删除复选框中的一个项目,它工作得很好下面是我的代码,我想知道我的代码是否有错: $cart = $_SESSION['items']; if(isset($_POST['del'])) { if ($cart) { $newcart = array(); foreach ($cart as $item) { foreach ($_POST['itemid'] as $del) {

嗨,我有一个购物车,但我的问题是,当我删除多个项目时,它不会处理,但如果我只删除复选框中的一个项目,它工作得很好下面是我的代码,我想知道我的代码是否有错:

 $cart = $_SESSION['items'];

if(isset($_POST['del'])) {

  if ($cart) {
  $newcart = array();
  foreach ($cart as $item) {

    foreach ($_POST['itemid'] as $del) {
        $delete = $del;
    }

    if ($del != $item) {

          if ($newcart != '') {
            $newcart[] = $item;
          } else {
            $newcart[] = $item;
          }

    }   


  }
  $cart = $newcart; 
  }

}

$_SESSION['items'] = $cart;
这是我的表格:

<form action="cart.php" method="post">
<table>
<tr>
<td><input type="checkbox" name="itemid[]" value="1"></td><td>Item 1</td><td>5</td>
</tr>
<tr>
<td><input type="checkbox" name="itemid[]" value="2"></td><td>Item 2</td><td>5</td>
</tr>
<tr>
<td><input type="checkbox" name="itemid[]" value="3"></td><td>Item 3</td><td>5</td>
</tr>
<tr>
<td><input type="checkbox" name="itemid[]" value="4"></td><td>Item 4</td><td>5</td>
</tr>
<tr>
<td colspan="2"><input type="submit" name="del" value="Delete"></td>
</tr>
</table>
</form>

项目15
项目25
项目35
项目45
如果我选中多个项目并提交“删除”按钮,则该项目不会被删除,但如果我只选中一个项目,则该项目将被删除

非常感谢您的帮助。

您的代码中有name=“items”,但您正在查找$\u POST['itemid']-它们应该彼此相同吗?看起来您对会话值感到困惑


发布您的编辑:

foreach ($_POST['itemid'] as $del) { 
    $delete = $del; 
} 
将只将最后的项目保留为$delete。你可以试试

foreach ($cart as $item) { 

    if (!in_array($item, $_POST['itemid'])) { 

        if ($newcart != '') { 
            $newcart[] = $item; 
        } else { 
            $newcart[] = $item; 
        } 

    }    
} 

对不起,我错过了。现在我没事了,我已经更新了我的问题。非常感谢。