Generalized arrays take any type of variable(s) as subscripts, but the subscript(s) are treated as one long string expression.
The use of for(a in x) on a generalized array will return all of the valid subscripts in some order, not necessarily the one you wished.
How can I make it so that i get the items returned sorted ...... ?
The order is somewhat random and may vary among the many implementations of awk.
This is an example how to to print the array in the order it's created. It uses a helper array b to hold the order of the main array (use nawk or /usr/xpg4/bin/awk on Solaris if you get errors):