转换方法:1、用“unserialize($str)”还原序列化数据;2、用json_encode()和json_decode()将还原后的数据转为数组类型,语法“json_decode(json_encode(还原数据),TRUE)”。

本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑

我们在开发的过程中有时会遇到需要把对象或者数组进行序列化存储,反序列化输出的情况。特别是当需要把数组存储到 MySQL 数据库中时,就需要将数组进行序列化操作。

所有 PHP 里面的值都可以使用 serialize() 函数将其转换为一个可以存储的字符串,也就是序列化。

而想要还原序列化数据,可以使用unserialize() 函数;该函数能够重新把字符串变回 PHP 原来的值,也就是反序列化。

php将序列化数据转为数组的方法

1、使用unserialize() 函数还原序列化数据

unserialize($str)

其中,$str 为使用 serialize() 函数序列化后的字符串。如果传入的字符串不可被反序列化,则会返回 FALSE,并产生一个 E_NOTICE。

2、将还原后的数据转为数组类型

使用json_encode函数将对象转换为json数据,再使用json_decode函数将json数据转换为数组。

<?php
$obj=serialize((object)array("11","22","33"));
var_dump($obj);
$res=unserialize($obj);
$arr=json_decode(json_encode($res),TRUE);
var_dump($arr);
?>

1.png


php怎么将序列化数据转为数组