正在努力解决将用户 ID 映射到零件 ID 并重新订购零件数量的关联数组的概念。
我们有很多零件需要重新订购,但我必须跟踪哪些用户需要为他们重新购买哪些零件。 UserID 列表来自一个表,然后 inventory_used 来自另一张表。
假设有一个这样的列表:
示例一:
UserID PartID Qty_Used
1 3 2
1 4 7
2 1 4
2 4 3
3 3 5
使用上述信息创建数组后,我必须为零件创建一个重新排序表单(表格)。因此,忽略用户 ID,按零件 ID 将它们分组,并对总数量(每个零件)求和。重新排序表应如下所示:
示例二:
PartID Qty_to_Reorder
1 4
3 7
4 10
我知道我会因为未能显示代码而受到大量反对,但我无法全神贯注于这个看似简单的问题。 (这是我的办公室,不是学校项目)。
我该怎么办:
(1) 构建第一个数组(创建它的循环是什么样的?),然后
(2) 循环遍历该数组以汇总/分组 partIDs => Qty
以进行重新排序报告,如上面的第二个示例所示?
对于第一个循环,我正在考虑这样的事情:
Loop through UserIDs {
Loop through PartIDs {
$arrReorder[UserID][PartID] = Qty_Used;
}
}
这是正确的吗?我如何循环遍历 $arrReorder 来总结每个partID使用的数量,并获取重新排序报告(示例2)?
最佳答案
从 mytable WHERE PartID=3 中选择 SUM(Qty_Used) AS 总计
PS:使用 PHP
<?php
$data = array();
$data[] = array("UserID" => 1, "PartID" => 3, "Qty_Used" => 2);
$data[] = array("UserID" => 1, "PartID" => 4, "Qty_Used" => 7);
$data[] = array("UserID" => 2, "PartID" => 1, "Qty_Used" => 4);
$data[] = array("UserID" => 2, "PartID" => 4, "Qty_Used" => 3);
$data[] = array("UserID" => 3, "PartID" => 3, "Qty_Used" => 5);
$PartID = 3;
$sum = 0;
foreach ($data as $arr) {
if ($arr['PartID'] == $PartID)
$sum += $arr['Qty_Used'];
}
echo $PartID."\t".$sum."\r\n";
?>
关于具有非唯一键的 PHP 关联数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29502935/