• Flip Table So Last Is First
    5 replies, posted
I am trying to flip the order of a table so the values are changed as shown below. I have tried the table.sort methods but it doesn't seem to effect the table at all. Start With: [lua] local Numbers = { 1, 2, 3 } [/lua] Ends With: [lua] local Numbers = { 3, 2, 1 } [/lua]
You need to supply a custom sorting function: [lua]table.sort( Numbers, function( a, b ) return a > b; end );[/lua]
Yea I saw that on the wiki but it doesn't seem to work, I think it is because the table containts numbers and not letters but I am not sure.
It will work if the table's keys are numerical and the values can be compared.
You could do this recursively too. [lua]local Numbers = { 1, 2, 3, "hai", "wat" } function ReverseTable(aTable, aCount, aReversedTable) if (aCount == nil) then aCount = 0 aReversedTable = {} end if (#aTable >= aCount) then ReverseTable(aTable, aCount + 1, aReversedTable) table.insert(aReversedTable, aTable[aCount]) end return aReversedTable end for k,v in pairs(ReverseTable(Numbers)) do print(k, v) end -- Prints out -- 1 wat -- 2 hai -- 3 3 -- 4 2 -- 5 1 [/lua]
Thanks for the reply Rob, I have figured out how to do it in the sql query, I will keep you post in mind though for other ordering functions.
Sorry, you need to Log In to post a reply to this thread.