我在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);
但我似乎做错了什么,一开始我得到了{em> bool(false)的var_dump
,现在我得到了{em> NULL <{1}} / em>的
答案 0 :(得分:8)
您的代码看起来不错......
有一件事可以解决你的问题,如果你的列太小 - 如果使用VARCHAR(255),你的数据可能会被截断而不会反序列化。如果您添加$row['Array']
的值,我可以看到它是否完整。
答案 1 :(得分:3)
使用列类型TEXT。序列化数据通常不适合VARCHAR(255)。
答案 2 :(得分:1)
你可以使用json编码,json_encode($ array),你将获得一个json表示法的字符串值,这样你就可以存储在数据库中,并且可以执行json_decode($ string,true),这样你就可以转换为数组再次。如果你没有将true参数传递给json_decode,它将转换为stdClass。
答案 3 :(得分:0)
这是我在php / html中的表格。 我需要存储和检索php详细信息(p),数量(q),费率(r)作为单独的表格格式