Hi:
There is really no such thing as a macro array. There are only numbered macro variables that you can loop through with a %DO statement in a macro program.
Sometimes, folks call numbered macro variable a macro array, but it really isn't. And I think a few folks have written their own %ARRAY macro programs to simulate array processing. But if you look in the macro language documentation, you will not see an %ARRAY statement in the Macro language:
http://support.sas.com/documentation/cdl/en/mcrolref/61885/HTML/default/viewer.htm#a001071915.htm
http://support.sas.com/documentation/cdl/en/mcrolref/61885/HTML/default/viewer.htm#a001072448.htm
cynthia
[pre]
SAS Log for program and output:
412 ** make some numbered macro variables;
413 %let muppet1 = Kermit;
414 %let show1 = Sesame Street;
415
416 %let muppet2 = Wembley;
417 %let show2 = Fraggle Rock;
418
419 %let muppet3 = Fozzie;
420 %let show3 = Muppet Show;
421
422 %let numcnt = 3;
423
424 %macro showmupp;
425
426
427 %do i = 1 %to &numcnt;
428
429 %put i is: &i ~~ Muppet character &&muppet&i was on &&show&i ;
430 %let newvar&i = M:&&muppet&i and S:&&show&i;
431 %put Macro variable newvar&i value is: &&newvar&i;
432 %put ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~;
433 %end;
434
435 %mend showmupp;
436
437 %showmupp;
i is: 1 ~~ Muppet character Kermit was on Sesame Street
Macro variable newvar1 value is: M:Kermit and S:Sesame Street
~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~
i is: 2 ~~ Muppet character Wembley was on Fraggle Rock
Macro variable newvar2 value is: M:Wembley and S:Fraggle Rock
~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~
i is: 3 ~~ Muppet character Fozzie was on Muppet Show
Macro variable newvar3 value is: M:Fozzie and S:Muppet Show
~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~
[/pre]