在工做中,常用json_encode和json_decode来序列化数组成字符串(从而方便在不一样页面传递数组变量)。json
可是今天发现 json_decode返回NULL,分析代码后发现数组元素中含有[符号,而[符号在json字符串中是数组的定界符,因此会出错。数组
为解决这个问题,须要将原来的数组在json_encode后进行base64_encode转换,这样就不会有问题了,可是base64_encode后字符串长度太大,因此还须要和gzcompress一块儿使用。函数
为方便,作成自定义函数:code
//序列化数组为字符串 function myArr_serialize($arr){ return base64_encode(gzcompress(json_encode($arr))); } //反序列化字符串为数组 function myArr_unserialize($str) { return json_decode(gzuncompress(base64_decode($str))); }