如何在php中添加,删除和删除会话中的所有值?

时间:2018-08-23 10:22:23

标签: php

在此代码中,我无法获取ID值。如何给一个数字而不是if(strlen)?而我该如何一一删除呢?

<?Php
    @$product=$_POST['product'];

    if (strlen($product)>3) {
        array_push($_SESSION['cart'],$product); // Items added to cart
    }
?>

<?Php
    if (isset($_SESSION['cart'])) {

        echo " <br><a href=cart-remove-all.php>Remove all</a><br>";
        while (list ($key, $val) = each ($_SESSION['cart'])) { 
            echo "$key -> $val <br>"; 
        } else {
            echo " Session Cart is not created. Visit <a href=cart.php>cart.php</a> page 
to create the array and add products to it. ";
        }
?>

<form method="post">  
    <input type="hidden" name="product" value="<?php echo $row['jobtitle'];?>">
    <input type="submit" style="float:right;font-size:15px;font-weight:600;" value="+ Add to Short List">
</form>

3 个答案:

答案 0 :(得分:0)

要删除所有内容,只需执行:

unset($_SESSION['cart']);

,而不是使用while循环,可以使用foreach循环。可以通过使用$ _SESSION ['cart'];

中的数组索引来删除该项目

答案 1 :(得分:0)

如果我清楚地理解了您的问题,则可以使用

if(isset($_SESSION['cart'][0]))
unset($_SESSION['cart'][0]);

同样,您可以更改0,1,2 ... n以取消设置第n条记录。顺便说一句,一旦您取消设置一个记录,数组中的记录数将从n变为n-1。如果您继续重复执行上述代码,直到记录数变为0,也将起作用

答案 2 :(得分:0)

使用foreach

foreach($_SESSION['cart'] as $key=>$value){
    if($ke==="yourkey"){
        unset($_SESSION['cart'][$key]); 
    }

}

您的密钥是您要删除的密钥。