2014-07-25 7 views
-2

나는 당신이 잘하는 것을 믿습니다.PHP - 개체 속성별로 개체 배열 정렬

이 배열을 객체의 score 속성으로 정렬하려고합니다. 다음은 데이터 (print_r)의 예입니다.

Array 
(
    [0] => stdClass Object 
     (
      [device] => 352454530452548 
      [reg] => MAM 432A 
      [distance] => 823.36 
      [ha_points] => 1 
      [hb_points] => 235 
      [hc_points] => 7.5 
      [idling_points] => 111.5 
      [speeding_points] => 168 
      [total] => 523 
      [score] => 68.239895064127 
     ) 

    [1] => stdClass Object 
     (
      [device] => 3518020541565265 
      [reg] => SM** *** 
      [distance] => 851.07 
      [ha_points] => 14 
      [hb_points] => 136 
      [hc_points] => 6 
      [idling_points] => 50 
      [speeding_points] => 336 
      [total] => 542 
      [score] => 68.957730856451 
     ) 

점수는 0에서 100 사이의 값이 될 수 있으며, 내림차순으로 정렬하고 싶습니다 (가장 먼저?). 상황을 더욱 복잡하게 만들려면 기회가 매우 희박하지만 2 개의 동일한 점수를 가질 수 있습니다.이 경우 어느 것이 먼저인지는 중요하지 않습니다.

아이디어가 있으십니까? 사전에

감사합니다,

답변

0

간단한 usort 일을 할 것입니다.

$arrData = array(/* ... */); 
usort($arrData, function($a, $b) { 
    return $a->score < $b->score ? 1 : -1; 
}); 
+1

부울이 아닌 정수 < 1, 0 or >을 반환해야합니다! – deceze

+0

브릴리언트, 비록 내가 오름차순으로 $ 012-> 점수 < $b-> 점수로 돌아 가야했지만 효과가있었습니다. 많은 감사의 환호! – Smithey93

+0

@deceze : 감사합니다. 잊어 버렸습니다. 누구든지 '-'를 추가 한 사람은 제대로 움직이지 않을 것입니다. 이는 이들이 부유하고 그 차이가 반올림되기 때문입니다. –