2013-03-08 122 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