You could have a value in the array which specifies which region a tile belongs to, then check tiles per region only when you need to.
You would have to set this value before the game begins manually though.
Also be aware that when it comes to foreach loops doing
array = 1,
foreach
is more efficient than doing,
foreach,
array = 1