2D arrays are a common topic that people want to know about. How can you make a 2D array in C#, Python, Java, Go—what is the syntax, how can you access elements? But for the most part the articles I have on 2D arrays ignores the main problems with 2D arrays.
Basically the best time to use a 2D array is never. It is usually better to just use one-dimensional arrays, nested arrays (which are like jagged arrays), or even hashtables. Often, data are sparse, and 2D arrays in most languages use memory for all elements—this wastes a lot of memory.
Here are some things I have found:
2D arrays, like recursive methods, are a feature that most programs would be better off not using. Other solutions are simpler and usually faster. I suppose, for completeness, learning about 2D arrays is worthwhile however.