PHP中有一个多维数组,如下所示:
$array = array(
"Part1" => array(
"Subpart1" => array(0, 1),
"Subpart2" => array(1, 0)
),
"Part2" => array(0),
"Part3" => array(0, 1, 0)
);
现在,我想将这个数组存储在一个MySQL表中,并在另一个PHP页面上再次像这样检索它。
我一直在尝试使用serialize()
和unserialize()
$array= serialize($array);
然后在另一页
$array= $row['Array'];
$array2 = array();
$array2 = unserialize($array);
但是我似乎做错了什么,起初我得到了bool(false)的var_dump
,现在我得到了NULL的var_dump
。
发布于 2009-05-21 15:13:54
你的代码看起来没问题..。
如果您的列太小--如果您使用VARCHAR(255),您的数据可以被截断,并且不会取消序列化。如果添加$row['Array']
的值,我可以看到它是否是整体的。
发布于 2009-05-21 15:34:27
使用列类型文本。序列化数据通常不适合VARCHAR(255)。
发布于 2009-05-21 18:19:00
您可以使用json_encode,json_encode($array),并以json表示法获得一个字符串值,这样您就可以存储在数据库中,并检索并执行json_decode($string,true),这样就可以再次在数组中进行转换。如果不将真正的参数传递给json_decode,它将转换为stdClass。
https://stackoverflow.com/questions/893461
复制相似问题