Mam klucz => tabela wartości Chciałbym sortować w Lua. Wszystkie klucze są liczbami całkowitymi, ale nie są kolejne (i mają znaczenie). Jedyną funkcją sortowania Lua wydaje się być table.sort
, która traktuje tabele jako proste tablice, odrzucając oryginalne klucze i ich powiązanie z określonymi elementami. Zamiast tego zasadniczo chciałbym móc korzystać z funkcji PHP's asort()
.Asocjatywne sortowanie tabeli według wartości w Lua
Co mam:
items = {
[1004] = "foo",
[1234] = "bar",
[3188] = "baz",
[7007] = "quux",
}
Chcę po operacji sortowania:
items = {
[1234] = "bar",
[3188] = "baz",
[1004] = "foo",
[7007] = "quux",
}
jakieś pomysły?
EDIT: Na podstawie odpowiedzi, mam zamiar założyć, że jest to po prostu dziwne dziwactwo konkretnego wbudowanego interpretera Lua ja pracuję, ale we wszystkich moich testów pairs()
zawsze zwraca pozycje w tabeli kolejność, w jakiej zostały dodane do tabeli. (tj. dwie powyższe deklaracje miałyby być różnie powtarzane).
Niestety, ponieważ nie jest to normalne zachowanie, wygląda na to, że nie mogę uzyskać tego, czego potrzebuję; Lua nie ma wbudowanych niezbędnych narzędzi (oczywiście), a środowisko osadzone jest zbyt ograniczone, abym mógł je obejść.
Mimo wszystko dziękuję za pomoc!
te dwie tabele są dokładnie takie same. – lhf