У меня есть таблица значений key = > , которую я хотел бы сортировать в 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 нет необходимых инструментов (конечно), и встроенная среда слишком ограничена для меня, чтобы обойти ее.
Тем не менее, спасибо за вашу помощь, все!