关于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;
  }

posted @ 2009-07-11 22:09  flora_asp.net  阅读(948)  评论(0编辑  收藏  举报