如何在 Lua 中根据值对多维数组进行排序

不幸的是,对于我来说,仍然很难在 lua 中对表进行排序。谁能帮我解决以下问题:

我想通过 pluNumber 对下面的表进行排序:

原始表:

[3] = {
    [1] = {
        ['article'] = {
            ['pluNumber'] = '204',
            ['name'] = '零度可乐'
        }
    },
    [2] = {
        ['article'] = {
            ['pluNumber'] = '202',
            ['name'] = '西红柿味汽水'
        }
    },
    [3] = {
        ['article'] = {
            ['pluNumber'] = '203',
            ['name'] = '七喜'
        }
    },
    [4] = {
        ['article'] = {
            ['pluNumber'] = '201',
            ['name'] = '可乐'
        }
    }
}

新表:

[3] = {
    [1] = {
        ['article'] = {
            ['pluNumber'] = '201',
            ['name'] = '可乐'
        }
    },
    [2] = {
        ['article'] = {
            ['pluNumber'] = '202',
            ['name'] = '西红柿味汽水'
        }
    },
    [3] = {
        ['article'] = {
            ['pluNumber'] = '203',
            ['name'] = '七喜'
        }
    },
    [4] = {
        ['article'] = {
            ['pluNumber'] = '204',
            ['name'] = '零度可乐'
        }
    }
}

我该从哪里开始?我没有用普通的 table.sort 成功

请帮帮我

原文链接 https://stackoverflow.com/questions/70679916

点赞
stackoverflow用户2858170
stackoverflow用户2858170

你需要提供一个函数告诉Lua哪个表元素应该排在前面。

table.sort(yourTable, function (a, b)
   return a.article.pluNumber < b.article.pluNumber end

或者

table.sort(yourTable, function (a, b)
   return a.article.pluNumber > b.article.pluNumber end

表示降序排列。这在 Lua 参考手册中有详细解释。

https://www.lua.org/manual/5.4/manual.html#pdf-table.sort

2022-01-12 12:15:37