2013-06-13 2 views
0

나는 다차원 배열 등이 있습니다정렬 및 그룹 다차원 배열

Array 
(
    [0] => Array 
     (
      [quick_filter] => best_of_web 
      [id] => 1136 
     ) 

    [1] => Array 
     (
      [quick_filter] => org_content 
      [id] => 1139 
     ) 

    [2] => Array 
     (
      [quick_filter] => org_content 
      [id] => 1141 
     ) 

    [3] => Array 
     (
      [quick_filter] => best_of_web 
      [id] => 1143 
     ) 

    [4] => Array 
     (
      [quick_filter] => org_content 
      [id] => 1144 
     ) 

    [5] => Array 
     (
      [quick_filter] => best_of_web 
      [id] => 1145 
     ) 

) 

을하고 난 다음

Array 
(
    [best_of_web] 
    Array 
    (
     [id] => Array 
      (
       [0] => 1136 
       [1] => 1143 
       [2] => 1145 
      ) 
    ) 

    [org_content] 
    Array 
    (
     [id] => Array 
      (
       [0] => 1139 
       [1] => 1141 
       [2] => 1144 
      ) 
    ) 
) 
+1

당신이 그렇게 특별한 문제가 있습니까? 배열을 반복하는 방법을 알고 있습니까? 배열 요소에 액세스하는 방법? –

+1

그리고 이것을 시도한 당신의 잘못은 어디로 가고 있습니까? – Dale

답변

2

시도 등의 순서를 정렬 할 :

$output_array = array(); 
foreach ($input_array as $item) { 
    if (!isset($output_array[$item['quick_filter']]['id'])) { 
     $output_array[$item['quick_filter']]['id'] = array(); 
    } 
    $output_array[$item['quick_filter']]['id'][] = $item['id']; 
} 

것은 교체 $input_array을 정렬하려는 배열로 대체하십시오.

1

방법에 대한 ..

$resultArray = array(); 
foreach ($sourceArray as $key=>$value){ 

    if (!isset($resultArray[$value['quick_filter']])) 

     /* set a new key to $resultArray */ 
     $resultArray[$value['quick_filter']]['id'] = array($value['id']); 

    } else { 

     /* add id to $resultArray*/ 
     $resultArray[$value['quick_filter']]['id'][] = $value['id']; 

    } 
} 
+0

요청한 데이터 구조에'id' 키가 없습니다. –

+0

감사! 곧 업데이트 될 것입니다 (배열에서 ID 키를 갖는 것은 이해가되지 않습니다) –

1

방법이있다 :

$merged = array(); 
foreach ($array as $index) $merged[$index['quick_filter']]['id'][] = $index['id']; 
print_r($merged);