Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sorting 将lua中的表排序为多表组_Sorting_Lua - Fatal编程技术网

Sorting 将lua中的表排序为多表组

Sorting 将lua中的表排序为多表组,sorting,lua,Sorting,Lua,我需要对列表进行排序\u rolls,以同时考虑用户名单和排名 _rolls = { {Username="User1", Roll=50, RankPrio=1}, {Username="User2", Roll=2, RankPrio=3}, {Username="User4", Roll=10, RankPrio=2}, {Username="User5", Roll=9, Ra

我需要对列表进行排序
\u rolls
,以同时考虑用户名单和排名

_rolls = {
    {Username="User1", Roll=50, RankPrio=1},
    {Username="User2", Roll=2, RankPrio=3},
    {Username="User4", Roll=10, RankPrio=2},
    {Username="User5", Roll=9, RankPrio=2},
    {Username="User3", Roll=32, RankPrio=2}
}
我希望列表按如下方式排序

_rolls = {
    {Username="User2", Roll=2, RankPrio=3},
    {Username="User3", Roll=32, RankPrio=2},
    {Username="User4", Roll=10, RankPrio=2},
    {Username="User5", Roll=9, RankPrio=2},
    {Username="User1", Roll=50, RankPrio=1}
}
我知道我可以用它来按卷排序,但我看不到一种方法可以同时做到这两个方面

table.sort(_rolls, function(a,b) return a.Roll < b.Roll end)
table.sort(_rolls,函数(a,b)返回a.Roll
您只需编写比较函数,以便在
RankPrio
字段比较相等时比较
Roll
字段:

_rolls = {
    {Username="User1", Roll=50, RankPrio=1},
    {Username="User2", Roll=2, RankPrio=3},
    {Username="User4", Roll=10, RankPrio=2},
    {Username="User5", Roll=9, RankPrio=2},
    {Username="User3", Roll=32, RankPrio=2}
}

table.sort(_rolls,
           function (a, b)
             if a.RankPrio == b.RankPrio then
               return b.Roll < a.Roll
             else return b.RankPrio < a.RankPrio
             end
end)

我希望将
RankPrio
s分组并首先排序,然后对该组中的
Roll
进行排序