So it turns out that I didn't need a multidimensional array...
Got the broad strokes, time to exorcise the devils in the details.