数组转换以存储在数据库中的数组中

时间:2012-10-17 17:52:59

标签: php mysql

  

可能重复:
  How to store an array into mysql?

这是我需要存储在数据库中的数组: -

$v=array(
"Image"=> array (
                 0=> array (
                                "id"=> 150,
                                "Tags"=> array(
                                                0=> array ( "id"=> 200, "text"=>"John Doe", "left"=> 250, "top"=> 50, "url"=> "person.php?id=200" ,"isDeleteEnable"=> true ),
                                                1=> array ( "id"=> 400, "text"=> "Michael Smith", "left"=> 420, "top"=> 45, "width"=> 120, "height"=> 120, "isDeleteEnable"=> true ),
                                                2=> array ( "id"=> 500, "text"=> "Peter Parker" ,"left"=> 55 ,"top"=> 40, "url"=> "person.php?id=500" ,"isDeleteEnable"=> false )
                                                )
                            )

                   )       

    ) ;

是否有任何可以执行此操作的函数,以便整个数组可以存储在数据库中。 我正在开发LAMP。 此外,我需要从数据库中再次检索此数组。

3 个答案:

答案 0 :(得分:2)

查看serialize()

$db = serialize($v);

当然,unserialize()可以恢复它。

Working Demo(使用您提供的数据)

答案 1 :(得分:1)

您有几种选择。最值得注意的是,您可以serialize it将序列化字符串存储在数据库中,然后使用unserialize将字符串转换回数组。这是最简单的答案。

另一个选项是设置数据库,通过使用带有字段' id'的表image和带有字段的表imagetag来准确支持您正在执行的操作例如imageidtagid,表tag包含idtext等字段。

此选项更加模块化,并且由数据库管理系统更好地管理。

答案 2 :(得分:0)

$string = serialize($v);
$v = unserialize($string);