GNU AWK uses multidimensional associative arrays such as:
family[me][father][grandpa][name]="George"
family[me][father][grandpa][age]=70
family[me][father][grandma][name]="Katherine"
family[me][father][name]="Vasiliy"
family[me][name]="Ivan"
etc.
Sometimes it's hard to explore awk arrays such as PROCINFO (because in addition to scalars it has also subarrays: argv & identifiers)
So I wrote this awk script for myself. Maybe it will be useful for you. You can remove such substrings: \033[1;31m
if you don't like/have colored output.
#!/usr/bin/gawk -f
function arraytree(inputarray,arrname,i,member,arrnum){
if(!isarray(inputarray)){
print indent arrname member "[\033[1;31m" i "\033[0m]=\"\033[1;32m" inputarray"\033[0m\""
}else{
arrnum=i
member=i?member "[" i "]":""
print indent (i? arrname member:arrname)"(\033[1;34m" length(inputarray) " member"(length(inputarray)>1?"s":"")"\033[0m)"
indent=indent " "
for(i in inputarray){
arraytree(inputarray[i],arrname,i,member,arrnum)}
indent=substr(indent,1,length(indent)-1)
}
}
BEGIN{
arraytree(ArrayName,"ArrayName")
}