<分区>
我有一个程序可以为每个用户汇总执行的下载总数以及以 kb 为单位的总下载数据的总和。
local table = {}
table[userID] = {5, 23498502}
我的目标是 printTable
函数的输出将生成按下载的 kb 数量降序排列的整个用户列表 v[2]
local aUsers = {}
...
function topUsers(key, nDownloads, totalSize)
if aUsers[key] then
aUsers[key][1] = aUsers[key][1] + nDownloads
aUsers[key][2] = aUsers[key][2] + totalSize
else
aUsers[key] = {nDownloads, totalSize}
end
end
function printTable(t)
local str = ""
-- How to sort 't' so that it prints in v[2] descending order?
for k,v in pairs(t) do
str = str .. k .. ", " .. v[1] .. ", " .. v[2] .. "\n"
end
return str
end
...
我该怎么做?