Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 删除$\u COOKIE数组的第一项_Php - Fatal编程技术网

Php 删除$\u COOKIE数组的第一项

Php 删除$\u COOKIE数组的第一项,php,Php,如果我将一个项目添加到$\u COOKIE数组中,如下所示: setcookie("favorites[]", "value", time()+3600); 我可以从$\u COOKIE[favorites]数组中删除任何项目,如下所示: setcookie("favorites[$deletekey]", "", time()+3600); 除了添加的第一个,因此这不起作用: setcookie("favorites[0]", "", time()+3600*24); 如

如果我将一个项目添加到$\u COOKIE数组中,如下所示:

setcookie("favorites[]", "value",  time()+3600);   
我可以从$\u COOKIE[favorites]数组中删除任何项目,如下所示:

setcookie("favorites[$deletekey]", "", time()+3600);  
除了添加的第一个,因此这不起作用:

setcookie("favorites[0]", "", time()+3600*24);  

如何删除第一个数组而保留其他数组的完整性?

如果您知道数组是如何工作的,您就会知道0实际上是一个键

$myarray = array("key" => "value", 1 => "one");
$myarray[0]不存在,因为未定义该键。此数组中仅存在元素$myarray['key']和$myarray[1]。不能将$myarray['key']引用为数组中的第一项,因为0被视为数组的键,并且没有为该键定义值

然而,您可以使用创建一个值数组,它基本上会删除键并以这种方式引用它们,但对于cookie,我看不出这有什么用处

我可以从$\u COOKIE[favorites]数组中删除任何项目,如下所示:

否-将响应发送回浏览器时,应覆盖当前值

如果要从cookies数组中删除项目,请执行以下操作:

 unset($_COOKIE['favorites']);
如果要在浏览器上删除cookie,请将cookie设置为具有相同名称、路径和域,但过期日期为过去

没有CookieArry客户端这样的东西-您将PHPs语法与HTTP的工作方式混淆了,PHPs语法用于向数组添加项。当请求返回时,PHP可能会从名为“Favorites[]”的cookie创建一个数组,但客户端上没有这样的数组,只有一个值

setcookie("favorites[]", "value",  time()+3600); 
创建一个名为“Favorites[]”的cookie,这就是为什么它没有通过以下方式更改:

setcookie("favorites[0]", "", time()+3600*24);  
虽然通过在字符串中追加或嵌入整数来创建新cookie是有效的,但应避免使用方括号

C