如何在 lua 中获取数组的顺序

How to get the ordering of an array in lua

lua 中是否有一种(快速)方法来对数组进行排序并获取顺序,例如

a = {4,3.2,1,7}

=> 顺序为 3,2,1,4(因为 a[3]=1, a[2]=3.2, ...)

试试下面的代码。它使用比较值对索引数组进行排序。

a = {4,3.2,1,7} 
o = {}   
for i=1,#a do
    o[i]=i
end    
table.sort(o,function (x,y) return a[x]<a[y] end)    
for i=1,#o do
    print(i,o[i],a[o[i]])
end