2011-06-01 97 views
1

我是一个PHP人,所以我不知道如何解决这个问题。我知道我在PHP中如何做到这一点,但我不知道Lua对这个问题有什么限制。Lua数组问题

T = { 
    clocktable = {}, 
    beancabinet = {}, 
    --...etc 
} 

T.clocktable[674] = 1 
T.clocktable[660] = 1 
--...etc 

问:我怎么会遍历“T”来快速知道clocktable键包括扩展键“674”和“660”,只知道“clocktable”

注意:请注意开销,因为“T”表将会加载很多数据,并且这是在一个性能环境中。

回答

6

我不确定问题到底是什么。如果您知道密钥,ponzao的答案是正确的,否则使用一个for循环:

for key, value in pairs(T.clocktable) do 
    -- do something with key and value 
end 
+0

我们不知道T.clocktable的关键字(例如674)。另外,我们需要对每个键执行操作。 – Geekster 2011-06-01 20:33:31

+0

@Geekster:Robin提供的'for k,v in pairs(T)'语法是你如何循环遍历一个表,你不需要事先知道674。 – BMitch 2011-06-01 20:47:34

+0

@B米奇:感谢这似乎是正确的做法。 – Geekster 2011-06-01 20:54:29

1

有没有理由不去检查它是不是nil

T.clocktable[674] ~= nil 
+0

我们不知道“clocktable [674]”我们知道“clocktable”的时候询问。这个想法是编译一个键列表,所以我们可以使用键来执行操作。 – Geekster 2011-06-01 20:30:59

0

尝试

for i, v in pairs(T.clocktable) do 
    print("Key:", i, "Value:", v) 
end 

> Key: 674 Value: 1 
> Key: 660 Value: 1