但是,我們已經有了一個方便的解決方案來處理這種情況。我們不必編寫自己的函數來將復雜數組轉換為格式化字符串。有兩種流行的變量序列化方法。(推薦:PHP教程)
1、serialize()
2、unserialize()
我們可以使用serialize()函數序列化PHP中的任何數據。serialize()函數接受一個參數,該參數是我們想要分類的數據并返回一個序列化的字符串。
程序如下:
?php //一個復雜的數組$myvar = array( hello , 42, array(1, two ), apple // 轉換成字符串 $string = serialize($myvar); // 打印序列化的數據echo $string; ?
輸出:
a:4:{i:0;s:5: hello i:1;i:42;i:2;a:2:{i:0;i:1;i:1;s:3: two }i:3;s:5: apple }
從上面的代碼中,我們得到了一個具有序列化數據的變量$string。我們可以使用unserialize()函數來反序列化變量的值,以返回復雜數組$myvar的原始值。
serialize()和unserialize()函數示例:
?php// 一個復雜的數組$myvar = array( hello , array(1, two ), apple // 序列化上述數據$string = serialize($myvar);// 反序列化$string中的數據$newvar = unserialize($string); // 打印未序列化的數據print_r($newvar);?
輸出:
Array [0] = hello [1] = 42 [2] = Array [0] = 1 [1] = two [3] = apple)
這是本機PHP序列化方法。但是,由于JSON近年來變得如此受歡迎,他們決定在PHP 5.2中添加對它的支持?,F在,您可以使用json_encode()和json_decode()函數分別在PHP中序列化和反序列化數據。
由于JSON格式僅為文本格式,因此可以輕松地將其發送到服務器或從服務器發送,并且可以通過任何編程語言用作數據格式。
讓我們看看如何在PHP中使用json_encode():
?php // 一個復雜的數組$myvar = array( hello , 42, array(1, two ), apple // 序列化數據$string = json_encode($myvar); // 打印序列化的數據echo $string; ?
輸出:
[ hello ,42,[1, two ], apple ]
我們可以使用json_decode()函數解碼上面程序中編碼的數據,以獲得原始復雜數組。
程序如下:
?php // 一個復雜的數組$myvar = array( hello , 42, array(1, two ), apple // 序列化數據$string = json_encode($myvar); // 解碼上面編碼的字符串$newvar = json_decode($string); // 打印解碼后的數據print_r($newvar); ?
輸出:
Array [0] = hello [1] = 42 [2] = Array [0] = 1 [1] = two [3] = apple)
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答