我有以下代码,但它不起作用,我不知道我提交的错误,因为此代码不起作用:
以下是代码:
<?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!";
}
?>
答案 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!";
}