Есть исходный массив asd[[0],[1],[2],[3],[4]];
Каждый элемент, кроме нулевого представляет из себя массив только из нулевого элемента.
Необходимо чтобы при каждом переборе массива к каждому элементу, отличному от нуля, Добавлялись по 4 таких же массива, состоящему только из нулевого элемента.
На словах сложно

, объясню на примерах

:
Как исходник имеем массив
asd[
[0],
[1],
[2],
[3],
[4]
];
После первого прохода цикла, получаем следующий массив:
asd[
[0],
[1,
[0],
[1],
[2],
[3],
[4]
],
[2,
[0],
[1],
[2],
[3],
[4]
],
[3,
[0],
[1],
[2],
[3],
[4]
],
[4,
[0],
[1],
[2],
[3],
[4]
],
];
Следующий цикл преобразует этот массив в это:
asd[
[0],
[1,
[0,
[0],
[1],
[2],
[3],
[4]
],
[1,
[0],
[1],
[2],
[3],
[4]
],
[2,
[0],
[1],
[2],
[3],
[4]
],
[3,
[0],
[1],
[2],
[3],
[4]
],
[4,
[0],
[1],
[2],
[3],
[4]
]
],
[2,
[0,
[0],
[1],
[2],
[3],
[4]
],
[1,
[0],
[1],
[2],
[3],
[4]
],
[2,
[0],
[1],
[2],
[3],
[4]
],
[3,
[0],
[1],
[2],
[3],
[4]
],
[4,
[0],
[1],
[2],
[3],
[4]
]
], и т.д.
При этом в процессе выполнения цикла, необходимо задавать элементам значения.
asd[1][2][2][1][2][3][4][1][2] = 4;
asd[1][2][2][1][2][3][4][1][3] = 0;
И т.д.
С принципами работы циклов я знаком, но не пойму как при создании этого здоровенного многоуровневого массива присваивать значения его элементам.
При выполнении определенного условия, выполнение цикла будет прекращено, но сколько раз цикл будет совершен - неизвестно.
Может, кто-то знает как решить сию задачу? Или, может, есть какие-то другие способы ее решения кроме циклов?