2014-04-22 369 views
0

我有一個多維數組,並試圖根據數組屬性的值對它們進行分組。按特定值分組多維數組

我試圖按ID將它們分組,但事實上我實際上並不知道該ID。因此,它不喜歡我可以把它放在一個循環,並說雖然我< 7,因爲我不知道,7是id值的最大值,

Array (
[0] => Array (
     [name] => R8900 
     [type] => public 
     [id] => 1 
    ) 
[1] => Array (
     [name] => R8944 
     [type] => public 
     [id] => 1 
    ) 
[2] => Array (
     [name] => R8922 
     [type] => private 
     [id] => 3 
    ) 
[3] => Array (
     [name] => R8816 
     [type] => private 
     [id] => 3 
    ) 
[4] => Array (
     [name] => R7434 
     [type] => VIP 
     [id] => 7 
    ) 
) 

什麼我希望製作:

Array (

[1] => Array (
     [0] => Array (
       [name] => R8900 
       [type] => public 
       ) 
     [1] => Array (
       [name] => R8944 
       [type] => public 
       ) 
    ) 

[3] => Array (
     [2] => Array (
      [name] => R8922 
      [type] => private 
      ) 

     [3] => Array (
      [name] => R8816 
      [type] => private 
      ) 
    ) 

[7] => Array (
     [4] => Array (
      [name] => R7434 
      [type] => VIP 
      ) 
    ) 
) 

回答

1

東西一樣簡單:

var result:Object = {}; 

for each(var i:Object in input) 
{ 
    if(!result.hasOwnProperty(i.id)) 
    { 
     result[i.id] = []; 
    } 

    result[i.id].push(i); 
    delete i.id; 
} 
+0

嗨@Marty感謝烏拉圭回合的答覆。 – xyonme

+0

如何追蹤「結果」屬性? – xyonme

+0

@xyonme由於'result'及其內容是對象,因此您需要遍歷內容以進行調試。或者,您可以使用自己的'toString()'定義爲結果和內部對象創建自定義數據類型。 – Marty