"多次元"配列をスキャンするための、特別なfor文はありません。それはあり得ません。なぜなら、多次元配列や要素は実際には存在しないからです。配列を多次元的にアクセスする方法があるだけです。
しかし、プログラムに、常に多次元的にアクセスされる配列がある場合、組み込み関数split(see section 文字列操作のための組み込み関数)で、for文(see section すべての配列の要素のスキャン)のスキャンを組み合わせることにより、多次元配列のスキャンの効果が得られます。これは次のようになります。
for (combined in ARRAY) {
split(combined, separate, SUBSEP)
...
}
これは、配列中の連結され、組み合わされた各添字を見つけ、それをSUBSEPの値が現れる部分で切り離して、個々の添字に分割します。分割された添字は配列separateの要素になります。
したがって、ARRAY[1, "foo"]に格納しているとすると、添字"1\034foo"を持つ要素がarrayに存在します(SUBSEPのデフォルト値にはコード034を持つ文字が含まれていることを思い出してください)。遅かれ早かれ、for文はその添字を見つけ、"1\034foo"に設定されたcombinedで繰り返しを実行します。次に、下に示すようにsplit関数が呼び出されます。
split("1\034foo", separate, "\034")
この結果、separate[1]は1に、separate[2]は"foo"に設定されます。ただちに、異なる添字のもとのシーケンスが回復されます。