![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 14.01.2023
Сообщений: 4
|
![]()
Подскажите, пожалуйста, можно ли разделить на уровни вложенности строку и каждому уровню вложенности задать процент (где между фигурной скобкой и прямой чертой идет значение).
Например, такая строка: { 1 уровень - 1 | 1 уровень - 2 { 2 уровень - 1 | 2 уровень - 2 } } Чтобы в результате получилась строка: { 50%: 1 уровень - 1 | 50%: 1 уровень - 2 { 25%: 2 уровень - 1 | 25%: 2 уровень - 2 } } Примерно по такому принципу. Не только на 2 уровень, но и на более глубокие уровни вложенности. |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 07.10.2017
Сообщений: 104
|
![]()
можно, почему нельзя, надо написать алгоритм
![]() я бы сначала разделил на блоки по вложенности, а потом заново собрал.. |
![]() |
![]() |
![]() |
#3 |
Регистрация: 14.01.2023
Сообщений: 4
|
![]()
Проще говоря, как бы разделить эту строку по "|", но чтобы оно было вне фигурных скобок.
|
![]() |
![]() |
![]() |
#4 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
![]() |
![]() |
![]() |
![]() |
#5 | |
Регистрация: 14.01.2023
Сообщений: 4
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#6 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
![]()
Так поделите начала по фигурным скобкам ('{'), потом каждый элемент массива поделите по '}' формируя дерево из вложенных элементов. Потом пройдитесь по дереву и выполните explode по '|'. Для каждого элемента массива добавьте нужный %. Далее implode все можно обратно собрать в строку
|
![]() |
![]() |
![]() |
#7 |
Высокая репутация
СуперМодератор
Регистрация: 27.07.2008
Сообщений: 15,814
|
![]()
Можно применить рекурсию. Заводим счетчик числа скобок, если открывающая, то +1, если закрывающая, то -1. Как только счетчик обнулился, значит вы выдернули последовательность в скобках, при этом все внутренние скобки сохранены. Эту последовательность раскрываем рекурсивно, то есть делаем тоже самое, что описано с самого начала.
E-Mail: arigato.freelance@gmail.com
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Добавить уровни в существующую структуру | Евгений Таб | Microsoft Office Excel | 0 | 26.05.2017 10:25 |
Уровни отладки | RAFA91 | Общие вопросы C/C++ | 1 | 16.06.2015 23:41 |
уровни в БД | Deniska12 | Помощь студентам | 1 | 21.03.2012 12:08 |
уровни | Deniska12 | PHP | 1 | 21.03.2012 11:56 |
Уровни доступа linux | Hemul | PHP | 0 | 24.08.2011 17:33 |