2014-11-12 2 views
0

배열을 3 개의 값으로 정렬해야합니다. 여기에 배열이 설치 방법의 기본 설정이있다 : 현재PHP 배열을 3 개의 값으로 정렬

$arr = array(
    '1' => array(
     'start' => '1234', 
     'mh' => '12', 
     'status' => '1' 
    ), 
    '2' => array(
     'start' => '9874', 
     'mh' => '3', 
     'status' => '9' 
    ), 
    '3' => array(
     'start' => '5678', 
     'mh' => '6', 
     'status' => '2' 
    ) 
); 

, 난 단지는 array_multisort가 편리 온이 개 값을 기준으로 정렬 했어. 이제 상태 (낮음) -> 시작 (낮음) -> MH (높음) 순으로 세 가지 값을 모두 정렬해야합니다. 가장 낮은 상태가 가장 먼저 시작하고 가장 낮은 시작, 가장 높은 MH를 의미합니다.

도움을 주시면 감사하겠습니다. 여러 열을 기준으로 정렬

답변

2

일반적인 솔루션 : 작동

usort($arr,function($a,$b) { 
    return ($a['status'] - $b['status']) // status ascending 
     ?: ($a['start'] - $b['start']) // start ascending 
     ?: ($b['mh'] - $a['mh']) // mh descending 
     ; 
}); 
+0

, 감사합니다! – user3421702

관련 문제