【问题标题】:PHP - Insert to Database from Multidimensional ArrayPHP - 从多维数组插入数据库
【发布时间】:2017-06-21 07:27:56
【问题描述】:

我有一个关于这个问题的问题(根据标题)。 这是我的数组

Array
(
    [0] => Array
        (
            [0] => 0
            [1] => 0
        )

    [1] => Array
        (
            [0] => 3
            [1] => 2
        )

    [2] => Array
        (
            [0] => 1
            [1] => 0
        )
)

更多细节,你可以看图片

第一个维度将始终具有相同的长度(在本例中为 3)。 我想要实现的是: 我想从这个多维数组中获取数据,以便可以使用该值来更新我的数据库。语法是这样的(我将使用循环):

$sql = "UPDATE table_name SET column1='".$body[$i]."', column2='".$grip[$i]."', column3='".$gear[$i]."' WHERE `variant`='".$variant[$i]."'";

有可能吗? 在这种情况下,variant 列将为 A,B。

我已经看到了这些问题

但我还是不明白。

这是我的代码

 if ($stmt2 = $conn->prepare("SELECT * FROM ms WHERE variant in (SELECT variant FROM pwhorder WHERE times = '$time' AND NOT quantity = 0)")) {
   $stmt2->execute();
   $result2 = $stmt2->get_result();
   $num_of_rows2 = $result2->num_rows;
   while ($row2 = $result2->fetch_assoc()) {
       $amountb1[]=$row2["amount1"];
       $amountb2[]=$row2["amount2"];
       $amountb3[]=$row2["amount3"];
   }
   $stmt2->free_result();
   $stmt2->close();
}

$stock=array($amountb1,$amountb2,$amountb3);

我这样做是因为起初我想将$stock$request 进行比较。 $request 的代码与$stock 类似,只是取自不同的表。

【问题讨论】:

  • 你的数组的代码在哪里?如果你想使用命名索引来访问它,那么它需要使用命名索引来构建。
  • @AndyC,我编辑了我的帖子。

标签: php mysql arrays multidimensional-array


【解决方案1】:

这似乎是一个完美的案例,其中关联数组可以很好地解决您的问题。但是,由于您说问题在于使用索引数组,因此您需要逐步遍历每个数组并执行操作,但是您必须维护一个伴随值数组,以解释其键的索引。

从查找数组开始,作为数据的伴侣。

$top_level = array('Body', 'Grip', 'Gear');
$second_level = array('A','B');

然后您将需要处理您的数据数组并将其存储到相关联的键控数组中。

假设您的多维数组名称为$data

for( $d = 0 ; $d < count($data); $d++ )
{
    for( $s = 0; $s < count($data[$d]); $s++ )
    {
        $output[$top_level[$d]][$second_level[$s]] = $data[$d][$s];
    }//END FOR S < DATA{D}
}//END FOR D < COUNT(DATA)

现在这是未经测试的代码(我无法使用 PHP 编译器进行测试)。如果您确实收到任何错误,请发表评论,我很乐意更新。

如果我的理解正确,生成的 $output 数组应该是您正在寻找的格式化数据。

【讨论】:

    猜你喜欢
    • 2014-10-31
    • 2011-12-06
    • 2017-05-18
    • 1970-01-01
    • 2021-07-25
    • 1970-01-01
    • 2015-02-20
    • 2015-06-08
    • 2014-11-24
    相关资源
    最近更新 更多