在工做中,常用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))); }