Показать сообщение отдельно
  #1 (permalink)  
Старый 19.09.2012, 22:57
Новичок на форуме
Отправить личное сообщение для apish Посмотреть профиль Найти все сообщения от apish
 
Регистрация: 19.09.2012
Сообщений: 2

Нужен цикл для создания огромного массива
Есть исходный массив 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;

И т.д.

С принципами работы циклов я знаком, но не пойму как при создании этого здоровенного многоуровневого массива присваивать значения его элементам.

При выполнении определенного условия, выполнение цикла будет прекращено, но сколько раз цикл будет совершен - неизвестно.

Может, кто-то знает как решить сию задачу? Или, может, есть какие-то другие способы ее решения кроме циклов?
Ответить с цитированием