I'm not sure to understand what you're asking for, since tables in Lua natively handle string indexes, for example the following snippet:
tab = {};
tab['one']=1;
print(tab['one']);
prints 1
...if that is not what you're asking, could you please try to explain more precisely what behavior you want?
And if that was your question, a code like this one should work (I defined a Thing
class since I see you seem to use a class with seq
and days
fields, but I guess you already have something of the kind in your code, so I only left it for informational purposes).
-- class definition
Thing = {seq = {}, days ={}}
function Thing:new (o)
o = o or {}
setmetatable(o, self)
self.__index = self
return o
end
-- definition of the table and IDs
tab={}
p1d2='p1d2'
p2d2='p2d2'
-- this corresponds to the code you gave in your question
tab[p1d2]=Thing:new()
tab[p2d2]=Thing:new()
tab[p1d2].seq={0,1,2,3}
tab[p1d2].days={'sun','mon','wed'}
tab[p2d2].seq={0,1,2,3,4}
tab[p2d2].days={'fri','sat','tue'}
print(table.concat(tab[p1d2].seq))
-- prints '0123'