Добавлен Castiel
Чет искал в гугле и не нашел конкретного моего случая либо так искал. короче примерно дано
Table={}
Table["Petia"]=2
Table["Vasia"]=1
Table["Jenia"]=2
Table["Tusha"]=9
Table["Pitarda"]=3
Table["Kruk"]=1
нужно отсортировать чтоб получилось
Table["Tusha"]=9
Table["Pitarda"]=3
Table["Jenia"]=2
Table["Petia"]=2
Table["Kruk"]=1
Table["Vasia"]=1
Не могу понять как сделать сортировку. И как нумеруются вот эти вот "Petia""Vasia" в массиве ?Случайно не по счету 0-1-2....n ? Просто суть в том чтоб потом вернуть их значения этих петей васей и сравнить с другими петями женями по счету! И узнать самого большого посчету! через if then end
Принятый ответ
У вас строки используются в качестве ключей в таблице. Такое сортировке не подлежит потому как ассоциативные массивы не гарантируют порядок элементов.
Их можно перебрать через цикл по pairs. Для поиска самого большого значения этого хватит, сортировка не нужна для этого.
Если нужна именно сортировка - нужна таблица представляющая собой обычный нумерованный массив, в ячейках которого будут лежать таблицы с именами и другими значениями - такую конструкцию можно сортировать потому как обычный массив знает порядок элементов.
Их можно перебрать через цикл по pairs. Для поиска самого большого значения этого хватит, сортировка не нужна для этого.
Если нужна именно сортировка - нужна таблица представляющая собой обычный нумерованный массив, в ячейках которого будут лежать таблицы с именами и другими значениями - такую конструкцию можно сортировать потому как обычный массив знает порядок элементов.
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Отредактирован Castiel
Отредактирован Castiel
table[0]=3
table[1]=10
table[2]=5
table[3]=4
table[4]=1
итог:
table[1]=10
table[2]=5
table[3]=4
table[0]=3
table[4]=1
вот примерно так должно быть и узнать именно ключ самого высокго числа в этом случае table[1]
Просто я х3 может на луа есть какие то фичи этого)
Отредактирован prog
table[0]=10
table[1]=5
table[2]=4
table[3]=3
table[4]=1
Отредактирован Castiel
local key_count=0
local j=COUNT[0]
for i=1,6 do
if j<COUNT[i]then
j=COUNT[i]
key_count=i
end
end
так или чет не то ?
А если немного доработать - можно и второе сверху значение найти в том-же цикле, если оно еще нужно.