【问题标题】:How to sum all same key values in multi-dimensional array where key have an array?如何在键具有数组的多维数组中对所有相同的键值求和?
【发布时间】:2018-09-12 15:49:53
【问题描述】:

如何在 PHP 中通过关联键添加所有列值?注意 [1GB] 键是动态的

Array(
[0] => Array
        (
            [1GB] => array(1,2,1,3)
            [2GB] => array(1,2,1,3)
        )
[1] => Array
        (
            [1GB] => array(1,2,1,3)
            [2GB] => array(1,2,1,3)
            [5GB] => array(1,2,1,3)
        )
[2] => Array
        (
            [3GB] => array(1,2,1,3)
            [4GB] => array(1,2,1,3)
        )
[2] => Array
        (
            [3GB] => array(1,2,1,3)
            [4GB] => array(1,2,1,3)
        )
)

想要的结果:

Array(
[1GB] => array(2,3,2,6)
[2GB] => array(2,3,2,6)
[3GB] => array(1,2,1,3)
[4GB] => array(1,2,1,3)
[5GB] => array(1,2,1,3)

)

【问题讨论】:

标签: php arrays multidimensional-array sum


【解决方案1】:

我可能会误解某些内容,因为我没有得到与您显示的相同的输出,无论如何,它可能有助于实现您想要的答案

$dataset = [
    [
        ['1GB' => [1, 2, 1, 3]],
        ['2GB' => [1, 2, 1, 3]],
    ],
    [
        ['1GB' => [1, 2, 1, 3]],
        ['2GB' => [1, 2, 1, 3]],
        ['5GB' => [1, 2, 1, 3]],
    ],
    [
        ['3GB' => [1, 2, 1, 3]],
        ['4GB' => [1, 2, 1, 3]],
    ],
    [
        ['3GB' => [1, 2, 1, 3]],
        ['4GB' => [1, 2, 1, 3]],
    ]
];

$resume = [];

foreach ($dataset as $data) {
    foreach ($data as $item) {
        foreach ($item as $key => $value) {
            if (!array_key_exists($key, $resume)) {
                $resume[$key] = $value;
            } else {
                foreach ($value as $index => $number) {
                    $resume[$key][$index] += $number;
                }
            }
        }
    }
}

ksort($resume);

print_r($resume);

输出

Array
(
    [1GB] => Array
        (
            [0] => 2
            [1] => 4
            [2] => 2
            [3] => 6
        )

    [2GB] => Array
        (
            [0] => 2
            [1] => 4
            [2] => 2
            [3] => 6
        )

    [3GB] => Array
        (
            [0] => 2
            [1] => 4
            [2] => 2
            [3] => 6
        )

    [4GB] => Array
        (
            [0] => 2
            [1] => 4
            [2] => 2
            [3] => 6
        )

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

【讨论】:

  • 我同意,我不喜欢这种嵌套的厄运
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-01
  • 2013-11-26
  • 1970-01-01
相关资源
最近更新 更多