我有一个大型多维数组,我想将其存储到MySQL数据库中。
以下是相关数组的示例:
Array
(
[user1] =>
[name] => abc
...
[address] => xyz
...
...
[user2] =>
[name] => abc
...
[address] => xyz
}
数组值和数据库表列都匹配(除了数据库中的rowid)。我已经看到了做类似事情的各种方法,但没有找到适用于此解决方案的方法。
非常感谢:)
更新
更新了数组结构,以便更清楚地了解数组本身的内容。
答案 0 :(得分:2)
通常当你有这样的嵌套数据时,有两个表是有意义的...一个用于父表,一个用于子表,以便最有效地访问数据。父表将具有“父ID”和任何父级别数据,子表将具有“子ID”,“父ID”外键和子数据(在您的示例中,三个字符串)。
答案 1 :(得分:0)
使用序列化元素制作一个单维数组。您将仅插入一行,每列将包含序列化数组
答案 2 :(得分:0)
最后我花时间使用for循环并实现以下目标:
for ($i = 0; $i < 25; $i++)
{
$name = $parts[$i][0];
$address = $parts[$i][22];
// Run SQL query using the variable values rather than the array values.
}
我确信有一种更复杂的方法可以实现这一目标,但现在已经有效了!
谢谢大家。
答案 3 :(得分:-1)
你试过json_encode吗?您可以将数组转换为字符串,然后存储它,然后使用json_decode将其转回。
答案 4 :(得分:-1)
如果您需要存储数组本身,请使用serialize()和unserialize()将数组存储为数据库中的字符串。比Dutchie之前提到的json选项要好得多,因为json可能会遇到多维数组的问题。
或者您要将值存储在db?
中的关联记录中答案 5 :(得分:-1)
如果你要存储任意深度嵌套的数组,那么json_encode()
/ json_decode()
或serialize()
/ unserialize()
将是你最好的选择。唯一的问题是你无法直观地查询数据。
如前所述,按照建模对表进行建模是最佳的。