Como alterar a ordem das dimensões da matriz

Como reorganizo as dimensões de um array n dimensional. Por exemplo, se eu tiver uma matriz tridimensional de dados de vendas, em que a primeira dimensão representa a Data, a segunda dimensão é a Loja e a terceira dimensão é Departamento. Como faço para transformar o array de forma que a primeira dimensão seja Store, a segunda seja Department e a terceira seja Date. Este é apenas um exemplo. Eu estou esperando por uma solução geral.

questionAnswers(1)

yourAnswerToTheQuestion