То есть с каждой следующей строки скрипт проверяет предыдущий массив и если категории различаются, то перед название продукта он добавляет категорию. Символ "!" означает уровень вложенной категории.
ну так и делать. проверять в следующей строке, не поменялась ли одна из категорий
для этого по завершении итерации запоминать текущую категорию в переменную.
Продукт 1; Воздуховоды/Прямоугольные/Оцинкованные;
Продукт 2; Воздуховоды/Круглые/Нержавеющие;
Продукт 3; Воздуховоды/Прямоугольные/Оцинкованные;
Продукт 4; Воздуховоды/Круглые/Нержавеющие;
Продукт 5; Воздуховоды/Прямоугольные/Оцинкованные;
Продукт 6; Воздуховоды/Круглые/Нержавеющие;
У меня с детства фобия доверять всем входящим данным :)
Критикуете - предлагайте) Код приветствуется)