具有非唯一键的 PHP 关联数组

标签 php mysql arrays

正在努力解决将用户 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/

相关文章:

php - 未插入自动递增 ID

mysql - 每组最多 3 个结果(商店及其价格)

MySql - 跨不同服务器的联合

c - 龟兔赛跑指南

php - num_rows 功能问题

php - "No input file specified"对于某些版本的 PHP

javascript图片base64和php图片base64_encode不同

php - Aptana 项目(web 项目与 php 项目和 sql 支持)

javascript - 无法对使用类选择器检索到的元素执行任何操作

c++ - 计算数组中的元素