2015-07-13 75 views
2

我试图从值中获取表键名。 tostring只返回table: XXXXXXXXX从值获取表键名

我尝试了一些功能,但没有任何工作。

config = { 
    opt1 = "etc..." 
} 
players = {} 

function openMenu(playerName, configTable) 
    players[playerName] = Something to get Table Key... 

    -- read the table and create a gui not yet made 
end 

而接下来,如果我这样做:

print(players[playerName]) 

我想这样的输出:

"config" 
+0

PS:这需要用表的表工作(myTable的= {配置= {}}) –

+0

可能重复[ Lua从值中找到一个键值](http://stackoverflow.com/questions/7925090/lua-find-a-key-from-a-value) – ryanpattison

+0

不,它不是,我发现如何 –

回答

3

您需要遍历表的所有pairs,并返回如果值相等,则为关键字。请注意,这只会返回一个绑定,即使多个按键可导致相同的值:

function find(tbl, val) 
    for k, v in pairs(tbl) do 
     if v == val then return k end 
    end 
    return nil 
end