2012-04-04 5 views
1

매우 큰 다차원 배열이 있는데 그 요소의 값에 따라 정렬하고 싶습니다. 다음은 배열의 예 :요소를 기준으로 배열 정렬

[match_info] 
    [123] 
     [match_id] => [123] 
    [124] 
     [match_id[ => [124] 

그래서 정말, 내가 123, 124,하지 않도록 array-의 다음 층의 초기 "이름"의 데이터를 정렬하고 싶은 생각은 [ match_id] (같은 값이긴하지만 처음 열거 된 값을 정렬하는 것이 가장 좋을 것 같은 느낌입니다). 나는 usort를보고 있었지만 compare 함수를 완전히 이해하지는 못했다. 어떤 도움이 굉장 할 것입니다!

또한, 내가 찾고있어 결과는 [124] [123] 이상이어야합니다 : http://pastebin.com/DTngBiH5 (I 외부 사이트에 링크 싫어 : P

여기에 배열에서 실제 발췌 하지만 ... 너무 큼)

+5

질문에 대한 이해가 부족합니다. print_r() 출력의 일부를 게시 할 수 있습니까? 그러면 배열이 어떻게 구성되어 있는지 정확히 알 수 있습니까? 또한, 지금까지 무엇을 시도 했습니까? 무엇을 했습니까? 그리고 무엇을 기대 했습니까? 예제 데이터와 예제 코드를 사용하면 최상의/가장 빠른 결과를 얻을 수 있습니다. – ghoti

+0

http://pastebin.com/DTngBiH5 여기 발췌 부분이 있습니다. 눈에 쉽게 쓸 수 있도록 쓸모없는 정보를 잘라 냈습니다. 기본적으로 모든 항목을 정렬하는 데 필요한 숫자는 85174405, 85176557 등입니다. 그 아래에는 사람들의 ID가 있습니다. 그건 중요하지 않아. 기본적으로 전체 배열의 순서를 재정렬하여 더 큰 일치 ID를 맨 위에 표시해야합니다. (매치 ID는 [match_summ]의 첫 번째 요소이며 배열에서 더 아래쪽으로 사용됩니다.) asort()를 시도했지만 명령이 무언가에 의해 정렬되지 않았으므로 변경되지 않았습니다 ( –

답변

2

krsort 기능을보십시오. 그것은 역순으로 키에 의해 배열을 정렬합니다 (역순을 필요로하지 않는다면 단지 ksort).

krsort($array['match_info']); 
+0

). –

+0

array_multisort를 사용하여 고급 정렬을 할 수 있습니다. 다음은 다양한 PHP 정렬 함수에 대한 자습서입니다. http://www.techrepublic.com/blog/programming-and-development/use-the -power-of-these-php-functions-to-sort-your-arrays/394 –

+0

더 좋은 질문이 있습니다. 여러 krsorts를 수행하고 순서가 재정렬 된 완전히 새로운 배열을 생성 할 수 있습니까? –