получается нужно проверять ключ на существование и создавать, если не существует, то создавать.
Иначе ключи будут заменены.
например так пробовал:
a[1]={};
a[1]['qwe1']=[];
a[1]['qwe1'][1]=[];
a[1]['qwe1'][1][1]="qqqqq";
a[3]={};
a[3]['qwe2']=[];
a[3]['qwe2'][1]=[];
a[3]['qwe2'][1][1]="qqqq1";
a[3]={};
a[3]['qwe3']=[];
a[3]['qwe3'][1]=[];;
a[3]['qwe3'][1][1]="qqqq2";
НО! Так как элементы массива создаются во вложенных циклах, причем некоторые из
вложенных циклов могут и не отрабатываться вообще, каждый раз элементы будут пересозданы снова и данные будут потеряны.
единственный вариант - выносить создание элемента за пределы массива. Но это как-то некрасиво