关于session数组
首次接触PHP用到session遇到的问题是我要从session中删除其中指定的元素,现在出错了,删除后session数组中会出现从0开始的数组。百思不解,要是除掉的是最后一个,数组中前面的会全部变成从0开始的数组,而最后一个还是删掉了。RemoveFromCart()是在PHP中写的一个方法,就是删除商品的。
把指定的数商品从session数组中移出
/// </summary>
/// <param name="$id">商品id</param>
public function RemoveFromCart($id)
{
$isSuccessful = false;
$offSet = 0; //记录要删除的元素的位置,将从这里开始删除一个元素
$isFind = false;
while (($key= key($_SESSION['cart']))) //$_SESSION['cart']中存着一个数组放着商品的id和商品的数量
{
if($key == $id)
{
$isSuccessful = true;
$$isFind = true;
break;//如果相等就break掉
}
++$offSet; //如果上面的if条件不为真
next($_SESSION['cart']);
}
array_splice($_SESSION['cart'],$offSet,1);//从数组的$offSet处删掉一个元素
return $isSuccessful;
}