删除会话数组中的特定数组索引

时间:2013-12-10 12:54:45

标签: php session

我正在尝试删除cart.php中的项目。它第一次有效。但是当我尝试删除下一个项目代码时,删除下一​​个项目而不是我要删除的项目。这是我的代码:

    <?php 
//if user wants to remove any item from cart
if(isset($_REQUEST['index_to_remove']) && $_REQUEST['index_to_remove'] = !"")
{
    $key_to_remove = $_REQUEST['index_to_remove'];
    if(count($_SESSION["cart_array"]) <= 1){
        unset($_SESSION['cart_array']);
    }else{
        unset($_SESSION["cart_array"]["$key_to_remove"]);
        rsort($_SESSION["cart_array"]);
        print_r($_SESSION["cart_array"]);
    }
}

&GT;

4 个答案:

答案 0 :(得分:0)

你永远不应该unset($_SESSION)。清除$_SESSION变量的最简单方法是$_SESSION = Array();, 但你也可以用unset迭代: foreach(array_keys($_SESSION) as $k) unset($_SESSION[$k]);

答案 1 :(得分:0)

<?php
$fruits = array("lemon", "orange", "banana", "apple");
rsort($fruits);
foreach ($fruits as $key => $val) {
    echo "$key = $val\n";
}
?>

输出

0 = orange
1 = lemon
2 = banana
3 = apple

rsort将从0动态分配密钥,这会更改密钥。

答案 2 :(得分:0)

您似乎在代码的开头缺少session_start()

答案 3 :(得分:0)

thanxs伙伴们为你提供帮助我遇到了问题。问题出现在if语句中我的if语句是

    if(isset($_REQUEST['index_to_remove']) && $_REQUEST['index_to_remove'] = !"")
在这个声明中,如果你放了!之前=它会正常工作。所以这个if语句看起来像这样。

    if(isset($_REQUEST['index_to_remove']) && $_REQUEST['index_to_remove'] != "")