排序多个比较字段

时间:2016-01-15 16:17:00

标签: php usort

我试图基本上将这两个功能结合起来。我需要按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;
       });

1 个答案:

答案 0 :(得分:0)

你可以在第二个中添加一个if语句。 原文:

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;
});

新:

settings.py

这将导致第一次按PositionDisplay顺序排序,然后如果它们相等,那么它将按MemberName排序。