@alexsun7

Как разделить строку на уровни вложенности в PHP?

Подскажите, пожалуйста, можно ли разделить на уровни вложенности строку и каждому уровню вложенности задать процент (где между фигурной скобкой и прямой чертой идет значение).

Например, такая строка: { 1 уровень - 1 | 1 уровень - 2 { 2 уровень - 1 | 2 уровень - 2 } }

Чтобы в результате получилась строка:

{ 50%: 1 уровень - 1 | 50%: 1 уровень - 2 { 25%: 2 уровень - 1 | 25%: 2 уровень - 2 } }

Примерно по такому принципу. Не только на 2 уровень, но и на более глубокие уровни вложенности.

Проще говоря, как бы разделить эту строку по "|", но чтобы оно было вне фигурных скобок.
  • Вопрос задан
  • 118 просмотров
Решения вопроса 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега PHP
Даже если это можно сделать через регулярки (мне так не кажется), этот код не будет поддерживаемым и читаемым.

Напишите простой конечный автомат, который будет разбирать строку посимвольно в многоуровневый массив, а потом к элементам этого массива добавляйте свой процент, который будет высчитываться исходя из количества соседей. Для сборки финальной строки понадобится рекурсия, но это преодолимое препятствие.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы