我有一张这样的桌子:
tbl = {
['etc1'] = 1337,
['etc2'] = 14477,
['etc3'] = 1336,
['etc4'] = 1335
}
现在我需要对此表进行排序以使输出从最高值到最低值:
tbl = {
['etc2'] = 14477,
['etc1'] = 1337,
['etc3'] = 1336,
['etc4'] = 1335
}
已经尝试过很多函数,比如table.sort或官方手册中的其他函数,但没有任何帮助。所以希望你能帮助我们!
问候。
答案 0 :(得分:1)
Lua表除了按键之外没有其他订购。您需要更像这样构建数据:
tbl = {
[1] = { ['etc2'] = 14477 },
[2] = { ['etc1'] = 1337 },
[3] = { ['etc3'] = 1336 },
[4] = { ['etc4'] = 1335 }
}
或者这个:
tbl = {
[1] = { 'etc2', 14477 },
[2] = { 'etc1', 1337 },
[3] = { 'etc3', 1336 },
[4] = { 'etc4', 1335 }
}
或者,如果你想将它与原始表一起使用:
tbl_keys = {
[1] = 'etc2',
[2] = 'etc1',
[3] = 'etc3',
[4] = 'etc4'
}
请注意,我非常明确并编写了所有数字索引。你当然可以省略它们,所以最后的解决方案是:
tbl_keys = {
'etc2',
'etc1',
'etc3',
'etc4'
}
也许这意味着您应该编写一个将原始数据转换为这种新形式的函数,或者也许您可以在之前完成表格之前完成它。