如何取消设置会话变量?

时间:2015-07-14 06:59:36

标签: php

我有以下代码,但它不起作用,我不知道我提交的错误,因为此代码不起作用:

以下是代码:

<?php session_start();
if (isset($_GET['indexNo']) && is_numeric($_GET['indexNo']) && !empty($_GET['indexNo'])) 
{
   $indx = $_GET['indexNo'];
   foreach($_SESSION['itemsOrder'] as $key => $val)
{
 echo "$key => $val <br> " ;    
  if($indx == $val)
  {
    unset($_SESSION['itemsOrder'][$val]);

  }
  else
  {

    echo "indexNo was not unset <br>";
  }
 }
}
else 
{
    echo "indexNo not received!";
}
?>

3 个答案:

答案 0 :(得分:2)

$key不应该是$val。试试 -

if($indx == $key)
{
    unset($_SESSION['itemsOrder'][$key]);

}

无需使用isset&amp; empty在一起。

if (isset($_GET['indexNo']) && is_numeric($_GET['indexNo']))

答案 1 :(得分:2)

您需要取消设置会话数组值,而不是必须使用其键而不是值。 取代:

unset($_SESSION['itemsOrder'][$val]); 

使用:

unset($_SESSION['itemsOrder'][$key]);

答案 2 :(得分:0)

**Try This Code**
<?php session_start();
if (isset($_GET['indexNo']) && is_numeric($_GET['indexNo'])) 
{
$indx = $_GET['indexNo'];
foreach($_SESSION['itemsOrder'] as $key => $val)
{
echo "$key => $val <br> " ; 
if($indx == $val)
{
    unset($_SESSION['itemsOrder'][$key]);

}
else
{

    echo "indexNo was not unset <br>";
}
}
}
else 
{
    echo "indexNo not received!";
}