我的cookie是多维数组,格式像下面,
Array
(
    [Invoice_amount] => Array
        (
            [1271986299] => Array
                (
                    [1271986332] => 7
                )
 
        )
 
    [CustomsPrice] => Array
        (
            [1271986299] => Array
                (
                    [1271986332] => 7
                )
 
        )
 
    [CustomsAmount] => Array
        (
            [1271986299] => Array
                (
                    [1271986332] => 7
                )
 
        )
 
    [kname] => Array
        (
            [1271986350] => 1271986332
        )
 
    [Detail_Name] => Array
        (
            [1271986299] => Array
                (
                    [1271986350] => 66u5t
                )
 
        )
 
    [Volume] => Array
        (
            [1271986299] => Array
                (
                    [1271986350] => ty
                )
 
        )
 
    [Detail_number] => Array
        (
            [1271986299] => Array
                (
                    [1271986350] => 67
                )
 
        )//有十几个数组这是我写的函数,,,为什么无法删除呢???//删除cookie多维数组
 function del_cookie($id)        
{
  foreach($_COOKIE[$id] as $key=>$t)
        {
              if (is_array($t))
              {
                    del_cookie($key);
              }else
{
  $_COOKIE[$id][$key]="";//这里无论是用setookie("$id[$key][$k]"," ",time()-6000); 都是有错 }
        }
}

解决方案 »

  1.   

    晕怎么没人?或者谁有好的删除cookie数组的函数给我一个?谢谢。。
      

  2.   

    else
                {
                      $_COOKIE[$id][$key]="";//这里无论是用setookie("$id[$key][$k]"," ",time()-6000); 都是有错            }
    注释的方法没有错 关键是else这地方的写法有问题 应该是$_COOKIE[$t][$key]=""; 没有测试 楼主试试
      

  3.   

    刚才又仔细看了下 好像还是删除cookie的方法有问题
    方法1 setcookie($id[$key], "", time() - 3600);
    方法2 setcookie($id[$key], "");
    方法3 setcookie($id[$key], NULL);楼主试试看
      

  4.   

    这么定义的就怎么删除——对cookie变量赋空值就表示删除如果你的 $_COOKIE 是这样
    Array
    (
        [Invoice_amount] => Array
            (
                [1271986299] => Array
                    (
                        [1271986332] => 7
                    )
     
            )
    ...那么你定义 cookie 变量时是这样写的
    setcookie('Invoice_amount[1271986299][1271986332]', 7);删除cookie多维数组,实际上就是记录各维的键对于你的这种情况可写作
    function del_cookie($id) {
      $r = $id;
      $t = $_COOKIE[$id];
      while(is_array($t)) {
        $r .= '['.key($t).']';
        $t = current($t);
      }
      setcookie($r, '');
    }