Arrays in Lua simply are tables indexed with integers. Therefore, arrays do not have a fixed size, they grow as needed.

local arr = {} -- new array, same as empty table

An array can be initialized with values:

local days = {"Sunday", "Monday", "Tuesday",
"Wednesday", "Thursday", "Friday", "Saturday"}

print(days[1]) -- prints "Sunday"

You can use # prefix to return the size of an array:

print(#days) -- prints "7"

⚠️ In Lua, array indexes start at 1 !

local arr = {}
arr[1] = "hello"
arr[2] = "world" -- or table.insert(arr, "world")

print(#arr) -- prints "2"

arr[0] = "something"

print(#arr) -- still prints "2", because index 0 is not considered

This is how you can you loop over all values in an array:

local arr = {"hello", "world", "!"}

for index in pairs(arr) do
-- prints "hello", "world" & "!"

-- OR

for index, value in ipairs(arr) do -- using ipairs to get index & value
-- also prints "hello", "world" & "!"