我有一个键值表需要在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没有必要的内置工具(当然了),而嵌入式环境过于有限,无法解决这个问题。
还是感谢大家的帮助!