如何从PHP的会话数组中删除指定的数组值

时间:2018-09-17 09:38:09

标签: php forms session

我有一个普通数组,并将其保存在会话数组中,如下所示:

$products = array("product A", "product B", "product C");

if(isset($_POST['submit']))  {
    $_SESSION['products'] = [];
    if(!empty($_POST['products'])){
        $_SESSION['products'] = $_POST['products'];
        header("Location: checkout.php");
    }
}

以下是我正在使用的表单的代码:

<form action="" method="post">
    <?php for($x = 0; $x < $prodCount; $x++ ) { ?>
        <input type="checkbox" name="products[]" value="<?php echo $products[$x] ?>"><?php echo $products[$x] ?><br>
    <?php } ?>
    <!--<input type="checkbox" name="vehicle" value="Car" checked="checked"> I have a car<br>-->
        <input type="submit" name="submit" value="submit">
</form>

在checkout.php中,我有以下代码:

session_start();

if(isset($_SESSION['products'])) {
    foreach($_SESSION['products'] as $prods) {
        $link_address = "remove.php";
        echo "<br>".$prods."<a href='".$link_address."'>Remove</a>";
    }
}
?>
<a href="product.php">back</a>

现在我需要删除chekout.php中的项目。对于每个项目,我需要添加删除选项。

我在remove.php中有以下代码

session_start();
if(isset($_SESSION['products'])) {    
    $pros = $_SESSION['products'];
    $cntVal = count($pros);
for($z = 0; $z < $cntVal; $z++) {
 unset($_SESSION['products'][$z]);
        echo $_SESSION['products'][$z];
 }
}

请帮助。预先感谢。

0 个答案:

没有答案