2013-03-08 124 views
0

我想用相同的参考号码对产品进行求和,但我有第三个参数,例如维度。 (...,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 
) 
+0

我试过@Gerard Banasig答案来自:http://stackoverflow.com/questions/2189626/group-a-multidimensional-array-by-a-particular-value,但不是我期待的。 – Marcos 2013-03-08 14:20:30

+0

@Pitchinnate你的代码也可以工作。 – Marcos 2013-03-08 14:37:28

+0

是啊马克的更简洁,所以我想我会删除我的。 – Pitchinnate 2013-03-08 14:39:20

回答

2

就总结到一个新的数组,使用各种“分组”字段作为新阵列中的键:

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

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

+0

我有点接近 - 我想,但如何总结第一个价值(如数量)。 – Marcos 2013-03-08 14:21:42

+1

'... + = $ element ['quantity'];' – 2013-03-08 14:22:51

+0

它不是那么容易......不是吗?它工作完美。 – Marcos 2013-03-08 14:31:06