但是,我们已经有了一个方便的解决方案来处理这种情况。我们不必编写自己的函数来将复杂数组转换为格式化字符串。有两种流行的变量序列化方法。(推荐: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中添加对它的支持。现在,您可以使用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)
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。
新闻热点
疑难解答