每个数组索引都是唯一的表数组

我有一个包含不同产品ID的表

Products = {
      ['A']  = { 0x01, 0x02, 0x03 },
      ['B']  = { 0x11 },
      ['C']  = { 0x20, 0x22 }
}

当我读取产品ID寄存器时,值是上述唯一ID之一(例如0x03),我正在尝试读取此ID对应的产品。例如,如何从ID = 0x03获取Key ='A'?

点赞
用户107090
用户107090

你必须检索表格:

function findproduct(id)
        for k,v in pairs(Products) do
                for _,i in pairs(v) do
                        if i==id then return k end
                end
        end
end
print(findproduct(0x03))

如果表格很长,并且您需要经常执行此操作,请考虑构建索引:

Index = {}
for k,v in pairs(Products) do
        for _,i in pairs(v) do
                Index[i]=k
        end
end
print(Index[0x03])
2017-08-11 19:48:09