У меня есть таблица ключей => значений, которую я хочу отсортировать в Lua. Все ключи являются целыми числами, но не являются последовательными (и имеют значение). Единственная функция сортировки Lua выглядит как table.sort
, которая обрабатывает таблицы как простые массивы, отбрасывая оригинальные ключи и их связь с конкретными элементами. Вместо этого я бы хотел использовать функцию PHP * asort()
.
Что у меня есть:
items = {
[1004] = "foo",
[1234] = "bar",
[3188] = "baz",
[7007] = "quux",
}
Что я хочу после операции сортировки:
items = {
[1234] = "bar",
[3188] = "baz",
[1004] = "foo",
[7007] = "quux",
}
Есть идеи?
Редактировать: Основываясь на ответах, я предполагаю, что это просто странная особенность конкретного встроенного интерпретатора Lua, с которым я работаю, но во всех моих тестах pairs()
всегда возвращает элементы таблицы в том порядке, в котором они были добавлены в таблицу. (т. е. два приведенных выше объявления будут повторяться по-разному).
К сожалению, поскольку это не нормальное поведение, похоже, я не могу получить то, что мне нужно; Lua не имеет необходимых встроенных инструментов (конечно), а встроенная среда слишком ограничена, чтобы я мог ее обойти.
Тем не менее, спасибо за помощь, все!