A two dimensional array is a square or rectangular matrix. Is that really what you need or want? (Just checking here
![Smiley :)](https://www.eevblog.com/forum/Smileys/default/smiley.gif)
)
At the risk of seeming unhelpful, let me do that classic thing on forums and not answer your question (I can't anyway as I don't know VHDL), but instead let me ask for a little more background into the problem. It could be that there is a simpler way to proceed.
When you say "counter" that implies a single value. It seems you want to compare this against other values defined by some switches (one other value or several?). Your job therefore would be to encode the switch positions into the value or values you want to compare.
I can see how an array or matrix might be used to encode switch positions into a value, but another method might be to perform a scaled addition. For example, the binary value 10011 is equal to 10000 + 10 + 1 (where 1 and 0 would represent switches set or unset). If you had binary encoding in your switches you could take each switch position, scale it by a suitable factor and then add them all together.