我无法弄清楚如何在矩阵内的矩阵内获得矩阵的长度(嵌套深度为3)。那么代码的作用就是...看看发布者是否已经在数组中,然后在数组中添加一个新的发布者和相应的系统,或者将新系统添加到现有的数组发布者
output[k][1]
是发布商数组
output[k][2][l]
是系统
其中第一个[]是不同发布商的数量 第二个[]是同一发布者中不同系统的数量
那我怎么知道第三个深层阵列的长度是多少?
function reviewPubCount()
local output = {}
local k = 0
for i = 1, #keys do
if string.find(tostring(keys[i]), '_') then
key = Split(tostring(keys[i]), '_')
for j = 1, #reviewer_code do
if key[1] == reviewer_code[j] and key[1] ~= '' then
k = k + 1
output[k] = {}
-- output[k] = reviewer_code[j]
for l = 1, k do
if output[l][1] == reviewer_code[j] then
ltable = output[l][2]
temp = table.getn(ltable)
output[l][2][temp+1] = key[2]
else
output[k][1] = reviewer_code[j]
output[k][2][1] = key[2]
end
end
end
end
end
end
return output
end
此处已修复代码以供将来参考:http://codepad.org/3di3BOD2#output
答案 0 :(得分:3)
您应该可以将table.getn(t)
替换为#t
(在Lua 5.1中已弃用,在Lua 5.2中已删除);而不是这个:
ltable = output[l][2]
temp = table.getn(ltable)
output[l][2][temp+1] = key[2]
试试这个:
output[l][2][#output[l][2]+1] = key[2]
或者这个:
table.insert(output[l][2], key[2])