There is no special for statement for scanning a
"multi-dimensional" array; there cannot be one, because in truth there
are no multi-dimensional arrays or elements; there is only a
multi-dimensional way of accessing an array.
However, if your program has an array that is always accessed as
multi-dimensional, you can get the effect of scanning it by combining
the scanning for statement
(see section Scanning All Elements of an Array) with the
split built-in function
(see section Built-in Functions for String Manipulation).
It works like this:
for (combined in array) {
split(combined, separate, SUBSEP)
...
}
This sets combined to
each concatenated, combined index in the array, and splits it
into the individual indices by breaking it apart where the value of
SUBSEP appears. The split-out indices become the elements of
the array separate.
Thus, suppose you have previously stored a value in array[1, "foo"];
then an element with index "1\034foo" exists in
array. (Recall that the default value of SUBSEP is
the character with code 034.) Sooner or later the for statement
will find that index and do an iteration with combined set to
"1\034foo". Then the split function is called as
follows:
split("1\034foo", separate, "\034")
The result of this is to set separate[1] to "1" and
separate[2] to "foo". Presto, the original sequence of
separate indices has been recovered.
Go to the first, previous, next, last section, table of contents.