Advertisement
alestane

Precedence sorter

Jun 20th, 2013
173
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 0.47 KB | None | 0 0
  1. function sortGrouped(t)
  2.     local users, precedence = {}, {}
  3.     for _, entry in ipairs(t) do
  4.         local name = entry.name
  5.         table.insert(users, name)
  6.         precedence[name] = math.min(entry.i, precedence[name] or math.huge)
  7.     end
  8.     table.sort(users, function(a,b) return precedence[a] < precedence[b] end)
  9.     for i, name in ipairs(users) do
  10.         users[name] = i
  11.     end
  12.     table.sort(t, function(a, b) if a.name == b.name then return a.i < b.i else return users[a.name] < users[b.name] end end)
  13. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement