3

マトリックス内のマトリックス内のマトリックスの長さを取得する方法がわかりません (ネストされた深さ 3)。つまり、コードが行っていることは簡単に言うと... パブリッシャーが既に配列にあるかどうかを確認し、新しいパブリッシャーと対応するシステムを含む新しい列を配列に追加するか、新しいシステムを既存のアレイ パブリッシャー

output[k][1]パブリッシャー配列 output[k][2][l]はシステムです

ここで、最初の [] は異なるパブリッシャーの数で、2 番目の [] は同じパブリッシャー内の異なるシステムの数です。

では、3 番目の深い配列の長さを調べるにはどうすればよいでしょうか。

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

4

1 に答える 1

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])
于 2013-10-12T02:49:42.703 に答える