【问题标题】:How to sum values via the same key and group by other key如何通过相同的键对值求和并按其他键分组
【发布时间】:2013-03-08 14:01:24
【问题描述】:

我想按相同的参考编号对产品求和,但我有第三个参数,例如维度,例如(..., 24, 26mm,...) 当它们具有相同的尺寸时,我不能对这些值求和。我试过这个:Group a multidimensional array by a particular value? 但是如何对值求和? 我的数组如下所示:

Array
(
    [0] => Array
        (
            [0] => 2
            [1] => 790180X
            [2] => 26mm
        )
    [1] => Array
        (
            [0] => 4
            [1] => 762182Z
        )
    [2] => Array
        (
            [0] => 2
            [1] => 072182X
        )
    [3] => Array
        (
            [0] => 4
            [1] => 660122Y
        )
    [4] => Array
        (
            [0] => 2
            [1] => 790180X
            [2] => 24mm
        )
    [5] => Array
        (
            [0] => 1
            [1] => 225160Y
        )
    [6] => Array
        (
            [0] => 1
            [1] => 244160Y
        )
    [7] => Array
        (
            [0] => 1
            [1] => 225160Y
        )
    [8] => Array
        (
            [0] => 8
            [1] => 954120Y
        )
    [9] => Array
        (
            [0] => 3
            [1] => 072182X
        )
)

我想要这样的东西:

Array
(
    [0] => Array
        (
        [0] => 2
        [1] => 790180X
        [2] => 26mm
        )

    [1] => Array
        (
        [0] => 2
        [1] => 790180X
        [2] => 24mm
        )

    [2] => Array
        (
        [0] => 4
        [1] => 762182Z
        )

    [3] => Array
        (
        [0] => 5
        [1] => 072182X
        )

    [4] => Array
        (
        [0] => 4
        [1] => 660122Y
        )

    [5] => Array
        (
        [0] => 2
        [1] => 225160Y
        )

    [6] => Array
        (
        [0] => 1
        [1] => 244160Y
        )

    [7] => Array
        (
        [0] => 8
        [1] => 954120Y
        )
)

简写数组:

Array               =>  TO =>       Array
(                                   (
    [0] => 2:790180X:26mm           [0] => 2:790180X:26mm
    [1] => 4:762182Z                [1] => 2:790180X:24mm
    [2] => 2:072182X                [2] => 4:762182Z
    [3] => 4:660122Y                [3] => 5:072182X
    [4] => 2:790180X:24mm           [4] => 4:660122Y
    [5] => 1:225160Y                [5] => 2:225160Y
    [6] => 1:244160Y                [6] => 1:244160Y
    [7] => 1:225160Y                [7] => 8:954120Y
    [8] => 8:954120Y                )
    [9] => 3:072182X
)

【问题讨论】:

  • 我试过@Gerard Banasig 的回答来自:stackoverflow.com/questions/2189626/…,但不是我所期望的。
  • @Pitchinnate 你的代码也有效。
  • 是的,Marc 的更简洁,所以我想我会删除我的。

标签: php multidimensional-array sum grouping


【解决方案1】:

只需对一个新数组求和,使用各种“分组”字段作为新数组中的键:

$sums = array();
foreach ($yourarray as $element) {
    $sums[$element['dimension1']][$element['dimension2']]++;
}

对于您需要“分组”的每个维度,您向 $sums 数组添加一个键。

【讨论】:

  • 我有点接近 - 我想,但是如何对第一个值(如数量)求和。
  • ... += $element['quantity'];
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多