Не имеется специального оператора for для просмотра "многомерных" массивов; их и не могло быть, потому что на самом деле многомерных массивов или элементов нет; есть только многомерный путь доступа к элементам массива. Однако, если ваша программа имеет массив, доступ к которому всегда многомерный, вы можете достичь эффекта в его сканировании, комбинируя сканирующий оператор for (см. раздел 11.5 [Сканирование всех элементов массива], стр. 127) с встроенной функцией split (см. раздел 12.3 [Встроенные функции для действий с цепочками], стр. 137). Это выглядит подобно следующему примеру:
for (combined in array) -
split(combined, separate, SUBSEP) ... ""
Здесь combined устанавливается на каждый комбинированный индекс массива и расщепляется на индивидуальные индексы, определяемые вхождениями значений SUBSEP. Расщепленные индексы становятся отдельными индексами измерений элемента массива array. Так, предположим что присваивали значение элементу массива array[1, "foo"]; тогда в массиве есть элемент с индексом "1"034foo". (Вспомним, что значение по умолчанию переменной SUBSEP есть символ с кодом 034.)
Раньше или позже, но оператор for найдет этот индекс и выполнит итерацию с combined равным "1"034foo". Тогда функция split, вызовется с параметрами: split("1"034foo", separate, ""034"). В результате этого separate[1] получает значение "1", а separate[2] получает значение "foo". Тем самым восстанавливается оригинальная последовательность индексов.