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

Array of tables with each array index is unique

我有一个 table,其中包含不同产品的 ID

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

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

您必须搜索 table:

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))

如果table很长,而且你需要经常这样做,考虑建立一个索引:

Index = {}
for k,v in pairs(Products) do
        for _,i in pairs(v) do
                Index[i]=k
        end     
end     
print(Index[0x03])