# How do you compare tables with same values but different orders?

Okay, so I’ve been headscratching for this problem for hours now. The idea is simple. I want to be able to see if two given tables have the same values, no matter the configuration inside their brackets.
Here’s the script I currently have, and it’s safe to say that it doesn’t work.

``````local function CompareTables(t1, t2)
for i=1,#t1 do
if not (type(t1[i])=="table") then
if not table.find(t2,t1[i]) then
return false
end
else
for ie=1,#t2 do
if type(t2[ie])=="table" then
print('ya')
if #t2[ie]>0 then
CompareTables(t1[i],t2[ie])
end
else

end
end
end
end
return true
end

local t1 = {{"a"}}
local t2 = {{"b"}}
print(CompareTables(t1,t2))
-- Supposed to print false, but prints true
``````

Using this table, you can test your algorithm and see if the results match all my values. If it does, please send me the script.

``````t1 = {
1,
2
}
t2 = {
2,
1
}
--true
``````
``````t1 = {
{1}
}
t2 = {
{1}
}
--true
``````
``````t1 = {
{},
2,
{1,{}}
}
t2 = {
{2},
{},
{{},1}
}
--false
``````
``````t1 = {
{"a",1,{}},
{"b",2,{}}
}
t2 = {
{"a",2,{}},
{"b",1,{}}
}
--false
``````
``````t1 = {
{"a",1,{}},
{"b",2,{}}
}
t2 = {
{"a",1,{}},
{"b",2,{}}
}
--true
``````
``````t1 = {
{"a",1,{}},
{"b",1,{}}
}
t2 = {
{"a",1,{}},
{"b",2,{}}
}
-- false
``````
``````t1 = {
{"b",2,{}},
{"a",1,{}}
}
t2 = {
{"b",2,{}},
{"a",1,{}}
}
--true
``````