Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将多维数组值存储到MySQL(PHP)中_Php_Mysql_Multidimensional Array - Fatal编程技术网

将多维数组值存储到MySQL(PHP)中

将多维数组值存储到MySQL(PHP)中,php,mysql,multidimensional-array,Php,Mysql,Multidimensional Array,我有一个大的多维数组,我想存储到MySQL数据库中 下面是有关阵列的示例: Array ( [user1] => [name] => abc ... [address] => xyz ... ... [user2] => [name] => abc ... [address] => xyz } 数组值和数据库表列都匹配(数据库中的r

我有一个大的多维数组,我想存储到MySQL数据库中

下面是有关阵列的示例:

Array
(
    [user1] =>
        [name] => abc
        ...
        [address] => xyz
    ...
    ...
    [user2] =>
        [name] => abc
        ...
        [address] => xyz
}
数组值和数据库表列都匹配(数据库中的rowid除外)。我见过很多类似的方法,但还没有找到一种适合这个解决方案的方法

非常感谢:)

更新


更新了数组结构,以便更清楚地了解数组本身的内容。

通常当您有这样的嵌套数据时,有两个表是有意义的。。一个用于父级,一个用于子级,以便最有效地访问数据。父表将具有“父ID”和任何父级数据,子表将具有“子ID”、“父ID”外键和子数据(在您的示例中为三个字符串)。

您尝试过吗?您可以将数组转换为字符串,存储它,然后使用将其转回


如果需要存储数组本身,请使用和将数组作为字符串存储在数据库中。比前面提到的json选项Dutchie要好得多,因为json在多维数组中可能存在问题


或者您想将值存储在数据库中的相关记录中吗?

如果要存储任意深度嵌套的数组,那么
json\u encode()
/
json\u decode()
serialize()
/
unserialize()
将是您的最佳选择。唯一的问题是您无法直观地查询数据


如前所述,根据数据对表进行建模将是最佳选择。

使用序列化元素创建一维数组。您将只插入一行,每列将包含序列化数组。最后,我花时间使用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.
    }
($i=0;$i<25;$i++)的

{
$name=$parts[$i][0];
$address=$parts[$i][22];
//使用变量值而不是数组值运行SQL查询。
}
我相信有一个更复杂的方法来实现这一点,但这一点现在起作用了


谢谢大家。

+1关于“lethalMango”的好问题、标题和名称。99%的情况下都是这样,但是,有时存储数组是有价值的。对不起,我可能没有在上面解释清楚。嵌套数据是通过使用array_chunk来创建的,以便将所有数据正确分开(分成23组)。每个组都需要作为一行插入到数据库中。数组[0]-[24]的第一个维度只是用来创建组的。这打破了关系模型。