Puedes crear un array tridimensional.
Es algo muy poco común, primero porque rara vez se necesita una estructura de este tipo.
Y también porque gestionar una array 3D es algo.., si no más complicado, al menos si más confuso.
Y en realidad, hay alternativas menos confusas y más óptimas.
Mira, este es un ejemplo de una matriz de tres dimensiones de 2x3x4, lo cuál significa que contendrá 2 matrices de 3x4
Para recorrerlo, pues se anidan tres bucles:
Al ejecutar, vemos en pantalla que se muestran correctamente todos los elementos:
Pero fíjate lo lioso que es tener que gestionar 3 indices, y simplemente lo que hago es mostrar en pantalla. Si se quisieran hacer computos u otras tareas podría ser aún más complicado.
Como dije, hay otras alternativas, y consiste en aplicar Programación Orientada Objetos.
Seguramente nos será más cómodo crear una clase que modele una matriz, con la ventaja añadida de que podemos añadirle todos los métodos que necesitemos y dotarla de funcionalidades que no nos da una "matriz primitiva".
De este modo, podemos crear un array de una dimensión y guardar ahí todos los objetos creados con nuestra clase "matriz".
Con la ventaja además de que cada objeto puede tener unas dimensiones distintas a las de los demás.
En el caso del array tridimensional que he puesto antes, todas las matrices han de tener las mismas dimensiones, pero si hacemos una clase POO evitamos esta limitación.
Por ejemplo, esta podría ser una clase que gestiona una matriz, con algunos métodos básicos que pueden ser útiles.
Y aquí una clase main para probar esta clase. En ella creo un array simple con 50 objetos instanciados a partir de esta clase, donde les doy dimensiones al azar.
Muestro estas dimensiones y luego renuevo el primer objeto con unas dimensiones más pequeñas para poder hacer un ejemplo de como inserto datos, muestro en pantalla su contenido y consulto si tiene determinados elementos:
Al ejecutarlo, en pantalla vemos las funcionalidades que le hemos dado a nuestra clase Matriz.
Y podríamos darle muchas más funcionalidades, un método para ordenar sus elementos alfabéticamente, otro para retornar una determinada fila o columna de la matriz,..,lo que queramos.
Por esto digo que los arrays tridimensionales son algo muy poco común, porque cualquier clase POO es más sencilla de gestionar y nos da posibilidades infinitas.