2010-04-20 4 views
0

XML 응답에서 변환 된 배열이 있습니다. 내가해야 할 일은 배열을 'COMPANY'값을 사용하여 알파벳순으로 오름차순으로 정렬하는 것입니다.PHP의 4 수준 값으로 다차원 배열을 정렬하는 방법

나는 array_multisort를 사용하려고 시도했지만, 전혀 운이 없다. 어떤 도움이라도 대단히 감사하겠습니다.

array(1) { 
    ["DATASOURCE"]=> 
    array(1) { 
    ["MEMBER"]=> 
    array(4) { 
     [0]=> 
     array(4) { 
     ["REFNO"]=> 
     string(6) "000762" 
     ["STATUS"]=> 
     string(5) "CURRE" 
     ["DATE"]=> 
     string(8) "20100731" 
     ["COMPANY"]=> 
     string(80) "Tresham Institute Business Solutions           " 
     } 
     [1]=> 
     array(4) { 
     ["REFNO"]=> 
     string(6) "003721" 
     ["STATUS"]=> 
     string(5) "CURRE" 
     ["DATE"]=> 
     string(8) "20100930" 
     ["COMPANY"]=> 
     string(80) "Triad esign                 " 
     } 
     [2]=> 
     array(4) { 
     ["REFNO"]=> 
     string(6) "011412" 
     ["STATUS"]=> 
     string(5) "CURRE" 
     ["DATE"]=> 
     string(8) "20100630" 
     ["COMPANY"]=> 
     string(80) "Transpower Drives Ltd               " 
     } 
     [3]=> 
     array(4) { 
     ["REFNO"]=> 
     string(6) "059647" 
     ["STATUS"]=> 
     string(5) "CURRE" 
     ["DATE"]=> 
     string(8) "20100630" 
     ["COMPANY"]=> 
     string(80) "Trek-Kits Ltd                 " 
     } 
    } 
    } 
} 

답변

6

두 항목을 정렬하여 비교하는 기능이 필요합니다.

function sort_by_company($a, $b) 
{ 
    return strcmp($a['COMPANY'], $b['COMPANY']); 
} 

그런 다음 usort 함수를 사용하십시오.

usort($arr['DATASOURCE']['MEMBER'], 'sort_by_company'); 
+0

브릴리언트, 감사를 참조하십시오 , 그것은 완벽하게 작동합니다. –

0

당신은 usort() PHP 기능을 사용할 수 있습니다 : 여기

은 배열입니다.

+0

이 게시물을 도와 http://stackoverflow.com/questions/2672900/sort-an-array-by-a-child-arrays-value/2672925#2672925 – Karthik

관련 문제