Cookie 中的value值只能添加設置爲String類型的字符串數據,但咱們須要添加如數組,json串等其餘類型的數據時,咱們就要先對數據進行轉換,再存入Cookie裏了。json
Cookie 存儲數組,cookie存儲數組類型的數據有多種方法,實質就是講數組轉換成字符串再存儲。數組
第一種,將數組各個值用逗號拼接成字符串,隨後將字符串存入cookie。讀取時能夠使用split()將字符串以逗號分割從新組成數組。cookie
$data = array( 'a'=>'aaa', 'b'=>'bbb', 'c'=>'ccc' ); $str = $data['a'].",".$data['b'].",".$data['c']; //拼接成字符串
set_cookie('name',$str,3600); $cstr = $_COOKIE['name']; $cdata = split('[/,]',$cstr);
第二種,和上一種方法相似,使用 implode() 講數組合併成一個字符串存入cookie,以後獲取cookie值再使用 explode() 將字符串分割後生成數組。注意,使用explode時要保證字符串的首位不能是空(空格),否則會出現warning錯誤。編碼
$data = array( 'a'=>'aaa', 'b'=>'bbb', 'c'=>'ccc' ); $str = implode(',',$data); set_cookie('name',$str,3600); $cstr = $_COOKIE['name']; $cdata = explode(',',$cstr);
第三種,對數組進行編碼,以後獲取時再進行解碼。好比 serialize() 序列化和 unserialize() 反序列化操做。spa
$data = array( 'a'=>'aaa', 'b'=>'bbb', 'c'=>'ccc' ); $str = serialize($data); set_cookie('name',$str,time()+3600); $cstr = $_COOKIE['name']; $cdata = unserialize($cstr);
第四種,Cookie 存儲 json 字符串,使用 json_encode() 將數組轉換成json字符串,再將json字符串存儲到cookie中,最後獲取時使用 json_decode() 轉換回來便可。code
$data = array( 'a'=>'aaa', 'b'=>'bbb', 'c'=>'ccc' ); set_cookie('name',json_encode($data),time()+3600); $cstr = $_COOKIE['name']; $cdata = json_decode($cstr);