探讨多键值cookie(php中cookie存取数组)的详解

yipeiwu_com6年前PHP代码库

cookie默认不能存数组,所以下面的写法是错误的。
报错如下:
Warning: setcookie() expects parameter 2 to be string, array given in
但是PHP可以把同名且后面以[]结尾的cookie解析为数组。在php里面实现cookie存数组的方法如下:

方法一:先用serialize序列化数组,再存入COOKIE   ,读出来时用unserialize得到原来的数组

方法二:设定多键值cookie,注意必须给键值

复制代码 代码如下:

$arr = array(1,2,3);  
setcookie("a[0]", $arr[0]);  
setcookie("a[1]", $arr[1]);  
setcookie("a[2]", $arr[2]); 

结果:数组所有元素都存到了。
数组长度 :3
Array ( [0] => 1 [1] => 2 [2] => 3 )

以下写法是错误的:
复制代码 代码如下:

$arr = array(1,2,3);  
setcookie("a[]", $arr[0]);  
setcookie("a[]", $arr[1]);  
setcookie("a[]", $arr[2]); 

结果:只存了最后一个元素
数组长度 :1
Array ( [0] => 3 )

相关文章

PHP开发之归档格式phar文件概念与用法详解【创建,使用,解包还原提取】

本文实例讲述了PHP开发之归档格式phar文件概念与用法。分享给大家供大家参考,具体如下: 一个php应用程序往往是由多个文件构成的,如果能把他们集中为一个文件来分发和运行是很方便的,这...

php恢复数组的key为数字序列的方法

本文实例讲述了php恢复数组的key为数字序列的方法。分享给大家供大家参考。具体分析如下: 这里实现php把数组的key值恢复成类似于0,1,2,3,4,5...这样的数字序列 fu...

PHP5.5新特性之yield理解与用法实例分析

本文实例讲述了PHP5.5新特性之yield理解与用法。分享给大家供大家参考,具体如下: yield生成器是php5.5之后出现的,yield提供了一种更容易的方法来实现简单的迭代对象,...

php实现向javascript传递数组的方法

本文实例讲述了php实现向javascript传递数组的方法。分享给大家供大家参考。具体如下: 这里介绍的PHP进行数组传值给javascript的技巧,此方法适用php5.2以上,ph...

php session_start()关于Cannot send session cache limiter - headers already sent错误解决方法

说是已经有输出,用编辑器打,前面明明什么都没有,原来在使用AJAX的 时候,也出现过这种情况,后来,把这个PHP文件放到linux中打开,会发现,在文件的最前面,会出现“锘 ”这样的一个...