如何将此多维数组放入SQL-DB单元格?

时间:2012-02-23 19:02:02

标签: php mysql sql arrays multidimensional-array

我有这个多维数组:

Array
(
    [tennis] => Array
        (
            [3] => Seattle
            [4] => WA
            [5] => 98109
        )

    [Middle East] => Array
        (
            [6] => 2066822513
            [7] => 34740 - Georgetown Keg - 1/2 Manny Pale
            [0] => Hello World
        )

    [Florida] => Array
        (
            [1] => 38380 - Thirteen Coins-Boren
            [2] => 125 Boren Ave N
            [3] => Seattle
        )

)

我正在寻找一种方法将它最好地存储在我的SQL-DB中的一个单元格中。必须保留主阵列(网球,中东,佛罗里达)的钥匙。可以省略子阵列的其他键。我怎么能这样做?

3 个答案:

答案 0 :(得分:1)

我读到了序列化函数,并实现了它。

解决方案:首先我将数组转换为字符串:

  

$ array = serialize($ array);

然后我将字符串存储到数据库单元格中。

为了取回数组,我从数据库单元格中反序列化字符串:

  

$ array = unserialize($ array);

我最终得到了相同的阵列。简单

答案 1 :(得分:0)

查看serialize函数。

答案 2 :(得分:0)

我会使用JSON,因为它更通用。

<?php
  $json=addslashes(json_encode($array));
  mysql_query("INSERT INTO table (data) VALUES ('$json')");
?>

对于非常大的blob,在这种情况下你可以gzdeflate()我建议保存校验和。