Помогите с сортировкой таблицы |
Здравствуйте, гость ( Вход | Регистрация )
Помогите с сортировкой таблицы |
27.1.2010, 23:47
Сообщение
#1
|
|
Продвинутый участник Группа: Пользователи Сообщений: 157 Регистрация: 19.1.2010 Из: Волгоград Пользователь №: 5 756 Спасибо сказали: 77 раз |
Запутался с таблицами. Не пойму как сделать соритровку таблицы, у которой индекс строковый и данные сидят во вложенной таблице, но индекс числовой.
В скрипте "Snowball War" данные по игрокам хранятся в таблице вида: Код SnowTable = { вот её-то и не могу отсортировать по индексу [1] вложенной таблицы :(
["start"] = { [1] = "January 19 2010", [2] = "11:52:03", }, ["dimka570"] = { [6] = 0, [2] = 5, [3] = 0, [1] = 570, [4] = "Лейтенант-коммандор", [5] = 0, [7] = 0, }, ["dimka578"] = { [6] = 0, [2] = 5, [3] = 0, [1] = 578, [4] = "Лейтенант-коммандор", [5] = 0, [7] = 0, }, ["dimka294"] = { [6] = 0, [2] = 5, [3] = 0, [1] = 294, [4] = "Рыцарь лейтенант", [5] = 0, [7] = 0, }, ["dimka318"] = { [6] = 0, [2] = 5, [3] = 0, [1] = 318, [4] = "Рыцарь капитан", [5] = 0, [7] = 0, }, ["dimka124"] = { [6] = 0, [2] = 5, [3] = 0, [1] = 124, [4] = "Майор-сержант", [5] = 0, [7] = 0, }, } |
|
|
28.1.2010, 10:32
Сообщение
#2
|
|
Главный ра******й тут... Группа: Главные администраторы Сообщений: 1 727 Регистрация: 18.5.2008 Из: RF, 2la Пользователь №: 1 Спасибо сказали: 776 раз |
Код local tTemp = {} -- временная таблица
for i, v in pairs(SnowTable) do -- тут мы проходим по таблице рекордов if type(v[1]) == "number" then -- проверка на то что поле [1] - число table.insert(tTemp, {i, v[1]}) -- вставка в временную таблицу таблицы со значениями [1] - индекс нашей основной таблицы и [2] - параметр [1] этой таблицы end end table.sort(tTemp, function(arg1, arg2) -- сортировка return arg1[2] > arg2[2] -- проверяем что 2 значение таблицы больше другого end) --[=[ на выходе получаем отсортированную временную таблицу от большего к меньшему, в виде tTemp = { [1] = { [1] = "dimka578", [2] = 578, }, [2] = { [1] = "dimka570", [2] = 570, }, -- и так далее, прверь, а то я это набросал в блокноте, не проверял }]=] |
|
|
1.2.2010, 21:33
Сообщение
#3
|
|
Продвинутый участник Группа: Пользователи Сообщений: 157 Регистрация: 19.1.2010 Из: Волгоград Пользователь №: 5 756 Спасибо сказали: 77 раз |
Nickolya, спасибо. Я так и делал. Думал может как попроще можно.
|
|
|
Похожие темы
|
Сейчас: 23.11.2024, 22:24 |