2014-04-22 4 views
0

다차원 배열을 가지고 있으며 배열 속성의 값에 따라 그룹화하려고합니다.다차원 배열을 특정 값으로 그룹화

나는 그들을 ID로 그룹화하려고 시도하지만, 실제로이 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 
    ) 
) 

I가 바라고 무엇, 내가 for 루프에 넣어와 나는 < 7, 나는 7은 id 값의 최대 값임을 알 수 없기 때문에 동안 말할 수있는 것 아니에요 생산 :처럼 간단

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

뭔가 : UR 답장을

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'와 그 내용이 Objects이기 때문에 내용을 디버깅하려면 내용을 반복해야합니다. 또는, 결과를위한 커스텀 데이터 타입과 내부 객체를'toString()'정의로 생성 할 수 있습니다. – Marty

관련 문제