images1 = {"#1000061", "A", "#1000056", "H", "#1000064", "P", "#1000063", "X", "#1000062", "B"} images2 = {"#1000072", "A", "#1000073", "B", "#1000074", "P", "#1000075", "X", "#1000076", "H"} features = {"#326", "#327", "#328"} -- make letter lookup map letter2images = {} for i=1, #images1, 2 do letter = images1[i+1] if letter2images[letter] == nil then letter2images[letter] = {} end letter2images[letter][1] = images1[i] end for i=1, #images2, 2 do letter = images2[i+1] if letter2images[letter] == nil then letter2images[letter] = {} end letter2images[letter][2] = images2[i] end -- find out which results to load toget = {} for i=1, #images1, 2 do table.insert(toget, images1[i]) end for i=1, #images2, 2 do table.insert(toget, images2[i]) end for i=1, #features do table.insert(toget, features[i]) end results = getirresults(unpack(toget)) for _, feature in ipairs(features) do print() print(feature) for letter, images in pairs(letter2images) do img1, img2 = images[1], images[2] s = letter..": "..tostring(img1)..", "..tostring(img2) if img1 ~= nil and img2 ~= nil then res1, res2 = results[img1], results[img2] s = s.." | "..tostring(res1[feature])..", "..tostring(res2[feature]) end print(s) end end