php - 从 session 中的数组中取消设置项目

标签 php arrays session

我正在尝试从存储 session 中的数组中删除一个项目。我尝试了以下操作,但结果相反,实际上增加了更多!

所以这是我的 foreach,其中产品显示在购物车中,带有一个从购物车中移除的按钮:

foreach ($_SESSION['products'] as $product) {
    $name = $product['name'];
    $id = $product['id'];
    $price = $product['price'];
    $img = $product['img'];
    $sku = $product['sku'];
    $description = $product['description'];

    echo '<a href="single_product.php?product_id=' . $product['products'] . '">';
    echo "<img src='$img'><br />";
    echo "Product: $name<br />";
    echo "Price: $price | ID: $id<br />";
    echo "$description";
    echo '</a><br /><br />';
    echo '<form action="removeItem.php" method="post">
            <input type="hidden" name="product_id" value="' . $product['id'] . '" />
            <button name="removeItem">Remove</button>
          </form>';    

    $sum += $price;

}

这里是删除它的表单,但当您点击删除时它实际上会添加更多内容:

$_SESSION['products'][] = $itemid;  
$id = $_POST['id']; 

unset($_SESSION['products'][$id]);  
header("location:basket.php"); 

最佳答案

尝试这样的事情:

$product_id = $_POST["id"];
foreach($_SESSION['products'] as $key=>$product) {
   if($product['id'] == $product_id) {
      unset($_SESSION['products'][$key]);
      break;
   }
}

关于php - 从 session 中的数组中取消设置项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38540077/

相关文章:

php - 在不同的命名空间 php 中定义常量

php - 在 PHPExcel 图表中显示数据值(即在条形图的顶部等)

php - 如何存储敏感文件并只允许某些用户访问

arrays - 如何在 ARGV 中传递数组作为参数

c++ - 将 c 数组分配给 C++ vector

c - 迭代数组 C 时得到奇怪的输出

php - CakePHP 错误 : Class 'String' not found in Acl

PHP SameSite session 问题, session 不起作用

php - 使用 session 时 Laravel 的点符号出现问题

python - 在 Python 中通过重定向获取 session ID