我对这个问题有疑问(根据标题)。 这是我的数组
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
类似,只是从不同的表格中获取。
答案 0 :(得分:0)
这似乎是一个完美的案例,其中关联数组可以很好地解决您的问题。但是,由于您声明问题是使用索引数组,您需要逐步执行每个数组并执行操作,但是您必须维护一个伴随数组值,以便将索引解释为其键。
从查找数组开始,作为数据的伴侣。
$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
数组应该是您要查找的格式化数据。