【问题标题】:How to looping array data by category dan sum amount each category如何按类别和每个类别的总和循环数组数据
【发布时间】:2022-11-29 13:11:34
【问题描述】:

我有一个包含类别、描述和数量的数据数组,如下所示。

$arr = [
[1, "Category 1", "Desc 1", 10000],
    [2, "Category 1", "Desc 2", 5000],
    [3, "Category 1", "Desc 3", 2500],
    [4, "Category 1", "Desc 4", 3000],
    [5, "Category 1", "Desc 5", 15000],
    [1, "Category 2", "Ket 1", 10000],
    [2, "Category 2", "Ket 2", 5000],
    [3, "Category 2", "Ket 3", 2500],
    [1, "Category 3", "Kata 1", 3000],
    [2, "Category 3", "Kata 2", 15000],
];

从该数据中,我想根据其类别显示它,并将每个类别的值相加,如下所示。

Category 1
1. Desc 1 - 10000
2. Desc 2 - 5000
3. Desc 3 - 2500
4. Desc 4 - 3000
5. Desc 5 - 15000
Total = 35500
Category 2
1. Ket 1 - 10000
2. Ket 2 - 5000
3. Ket 3 - 2500
Total = 17500
Category 3
1. Kata 1 - 3000
2. Kata 2 - 15000
Total = 18000

要按类别显示数据,这是我编写的代码:

https://onlinephp.io/c/ca850

$array = [
    [1, "Category 1", "Desc 1", 10000],
    [2, "Category 1", "Desc 2", 5000],
    [3, "Category 1", "Desc 3", 2500],
    [4, "Category 1", "Desc 4", 3000],
    [5, "Category 1", "Desc 5", 15000],
    [1, "Category 2", "Ket 1", 10000],
    [2, "Category 2", "Ket 2", 5000],
    [3, "Category 2", "Ket 3", 2500],
    [1, "Category 3", "Kata 1", 3000],
    [2, "Category 3", "Kata 2", 15000],
];

$cat = '';
$x = 0;
foreach ($array as $key => $data) {
    if ($data[1] != $cat) {
        echo $data[1] . PHP_EOL;
        $cat = $data[1];
    }
    
    echo $data[0] . ". " . $data[2] . " - " . $data[3] . PHP_EOL;
}

结果:

Category 1
1. Desc 1 - 10000
2. Desc 2 - 5000
3. Desc 3 - 2500
4. Desc 4 - 3000
5. Desc 5 - 15000
Category 2
1. Ket 1 - 10000
2. Ket 2 - 5000
3. Ket 3 - 2500
Category 3
1. Kata 1 - 3000
2. Kata 2 - 15000

如何将每个类别的金额加起来?

【问题讨论】:

    标签: php arrays loops multidimensional-array foreach


    【解决方案1】:

    将其汇总到一个变量中,并在类别更改时重置它。

    $cat = '';
    $x = 0;
    $total = 0;
    foreach ($array as $key => $data) {
        if ($data[1] != $cat) {
            if ($key > 0) {
                echo 'Total: ', $total, PHP_EOL;
                $total = 0;
            }
            echo $data[1] . PHP_EOL;
            $cat = $data[1];
        }
        
        echo $data[0] . ". " . $data[2] . " - " . $data[3] . PHP_EOL;
        $total += $data[3];
    }
    echo 'Total: ', $total, PHP_EOL;
    

    【讨论】:

      猜你喜欢
      • 2021-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-20
      • 1970-01-01
      • 2016-09-20
      • 2020-01-08
      • 1970-01-01
      相关资源
      最近更新 更多