2016-01-15 77 views
-1

我想基本上結合這兩個功能。我需要按照PositionDisplayOrder排序,然後按MemberName字段的姓氏排序。排序多個比較字段

 usort($council_members->d, function($a, $b){ 

      $a = substr(strrchr($a->MemberName, ' '), 1); 
      $b = substr(strrchr($b->MemberName, ' '), 1); 
      return strcmp($a, $b); 
     }); 

     usort($council_members->d, function($a, $b){ 
      return $a->PositionDisplayOrder > $b->PositionDisplayOrder; 
     }); 

回答

0

您可以只添加一個if語句到第二個。 原文:

usort($council_members->d, function($a, $b){ 
     return $a->PositionDisplayOrder > $b->PositionDisplayOrder; 
    }); 

新:

usort($council_members->d, function($a, $b){ 
     if ($a->PositionDisplayOrder == $b->PositionDisplayOrder) { 
      $a = substr(strrchr($a->MemberName, ' '), 1); 
      $b = substr(strrchr($b->MemberName, ' '), 1); 
      return strcmp($a, $b); 
     } 
    return $a->PositionDisplayOrder > $b->PositionDisplayOrder; 
}); 

這將導致由PositionDisplay爲了第一分選,然後如果這些都是相等的,那麼它會通過成員名稱排序。

+0

我不能夠感謝你!做一個n00b有時候是很痛苦的! – Johanna

+0

歡迎您!我們都開始編程:) – Dbeazy