Bueno .. si guardas tus arrays (como ya lo está haciendo) de forma separada en arrays unidimensionales sip ... El problema es tener arrays bidimensionales (o multi..) y generar esos elementos .. La mayoría de casos los indices y nuemeros de elementos coinciden .. he de ahi que usase uno de los X arrays (contar sus elementos) ...
Si no fueran del mismo número de elementos .. ahí tocaría contar los X arrays implicados para ajustarse el bucle al de mayor elementos .. Y de ahi .. decidir (más condicionales) si se le dá valor .. o simplemente le asignamos "NULL" si no hay mas elementos que leer de un array particular ..
En resumen .. el problema no es guardartelo en la sesión (tus arrays) sino de generar tus arrays multidimensionales a partir de arrays unidimensionales.
jeje menudo lio me hago yo mismo
Un saludo,