我正在处理这个问题:
chars = {
["Nigo Astran"]="1",
["pantera"]="2"
}
nchar = (chars[$name])+1
变量$ name将为我提供一个我登录的字符串,在这种情况下:"Nigo Astran"
如果我在nchar
,则"2"
的值为"Nigo Astran"
,依此类推。我相信你明白了。
现在,我想从值中获取键,例如:
当nchar
为2
时,它应该以{{1}}为关键字。我只是没有得到钥匙的价值。
答案 0 :(得分:10)
如果您发现自己需要从表的值中获取密钥,请考虑将表反转为
function table_invert(t)
local s={}
for k,v in pairs(t) do
s[v]=k
end
return s
end
答案 1 :(得分:3)
我认为没有什么比使用pairs
循环表中的条目并比较密钥更有效。
你可以使用类似的东西
function get_key_for_value( t, value )
for k,v in pairs(t) do
if v==value then return k end
end
return nil
end
然后你会像这样使用它:
local k = get_key_for_value( chars, "1" )
答案 2 :(得分:-1)
最好的方法就是这样
local autoreply={
['hey']='hi',
['how are u']='am fine what about u?',
['how r u']='am fine what about u?',
['how are you']='am fine what about u?',
['sleep']='rockabye bayby good dreems',
['السلام']='وعليكم السلام ورحمة الله وبركاته',
}
local keys={'hey','how are u','how r u','how are you','sleep','السلام'}
function getValueFromKey(table,key)
for k,v in ipairs(keys)do
if string.find(string.upper(key),string.upper(v)) then return table[v] end
end
return false
end