Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sorting 如果值本身是表,如何对表进行排序_Sorting_Lua - Fatal编程技术网

Sorting 如果值本身是表,如何对表进行排序

Sorting 如果值本身是表,如何对表进行排序,sorting,lua,Sorting,Lua,如何根据序列值对该表进行排序 Record['Personnel Number']={['sequence']=1, ['mapping']='data',['value']='employeeCode', ['decode']='', ['expression']=''} Record['Effective Date']={['sequence']=3, ['mapping']='data', ['value']='payDate', ['decode']='', ['expression'

如何根据序列值对该表进行排序

Record['Personnel Number']={['sequence']=1, ['mapping']='data',['value']='employeeCode', ['decode']='', ['expression']=''}

Record['Effective Date']={['sequence']=3, ['mapping']='data', ['value']='payDate', ['decode']='', ['expression']=''}

Record['Unit']={['sequence']=4, ['mapping']='data', ['value']='payUnit', ['decode']='', ['expression']=''}

Record['Wage Type']={['sequence']=2, ['mapping']='data', ['value']='payCode', ['decode']='', ['expression']=''}
print(Record[4].key, Record[4].value)

您可以使用table.sort对列表进行排序

table.sort(列表[,comp])
按给定顺序对列表元素进行排序,从列表[1]到列表[#list]。 如果给定了
comp
,则它必须是一个接收两个列表的函数 元素,并在第一个元素必须位于 排名第二

local comp=函数(a,b)返回a.序列
将根据列表元素表的序列值对列表进行排序

您没有列表。Lua表键值对没有顺序。因此,您无法排序


排序列表是通过在数字键之间交换值来完成的。

如果序列值是唯一的且不会与现有键冲突,则可以创建一个备用索引:

for k,v in pairs(Record) do
    if type(v) == "table" then
        Record[v.sequence] = v
        v.key = k -- optional
    end
end
那么

1) 您可以按序列值进行索引

Record['Personnel Number']={['sequence']=1, ['mapping']='data',['value']='employeeCode', ['decode']='', ['expression']=''}

Record['Effective Date']={['sequence']=3, ['mapping']='data', ['value']='payDate', ['decode']='', ['expression']=''}

Record['Unit']={['sequence']=4, ['mapping']='data', ['value']='payUnit', ['decode']='', ['expression']=''}

Record['Wage Type']={['sequence']=2, ['mapping']='data', ['value']='payCode', ['decode']='', ['expression']=''}
print(Record[4].key, Record[4].value)
< P> 2)如果序列值也是所有整数,从1开始,不要跳过中间,可以使用<代码> iBoos<代码>迭代< /P>
for i,v in ipairs(Record) do
    print(i, v.key, v.value)
end

记录
不是列表,因此无法排序。你能想象出什么样的输出?