Показать сообщение отдельно
  #1 (permalink)  
Старый 19.11.2011, 10:01
Интересующийся
Отправить личное сообщение для cbone Посмотреть профиль Найти все сообщения от cbone
 
Регистрация: 19.11.2011
Сообщений: 11

Разбиение строки на десятимерный массив
Всем привет. Задача следующая: на сайте есть приборы, которые могут быть в разных исполнениях. Например прибор "ЭНИ-701" может быть 2-х канальным, 4-х канальным, 8-ми канальным. В свою очередь 2-х канальный ЭНИ-701 может быть на 10 Вт, 20 Вт. 4-х канальный на 10, 20, 30 Вт. И так далее. Для простоты восприятия:https://cacoo.com/diagrams/v2Qko8L4XGhYKh22
Конфигурация данного прибора задаётся в следующем виде:

var str = "ЭНИ-601[2к[10Вт;20Вт];4к[10Вт;20Вт;30Вт];8к[70Вт;80Вт]];"


Вложенность может быть ещё больше (то есть ЭНИ-601, 2-к, 10Вт могут быть ещё в разных исполнениях). максимальное число вложенностей достигает 10.

Вопрос заключается в следующем: Как обработать данную строку чтобы получить массивы с элементами:

arr[0] == "Эни-601";

arr[0][0] == "2к";
arr[0][1] == "4к";
arr[0][2] == "8к";

arr[0][0][0] == "10Вт";
arr[0][0][1] == "20Вт";

arr[0][1][0] == "10Вт";
arr[0][1][1] == "20Вт";
arr[0][1][2] == "30Вт";

arr[0][2][0] == "70Вт";
arr[0][2][1] == "80Вт";


Как можно подобное реализовать? Может я вообще думаю в неправильном направлении и есть менее извращённый способ?
Ответить с цитированием