Nano Hash - криптовалюты, майнинг, программирование

Распечатать древовидный массив в Twig

Я относительно новичок в PHP/Symfony, можете ли вы помочь мне с этим?

Я хочу создать дерево CSS и вывести инкапсулированный массив, содержащий 6 основных категорий и n-дочерних категорий, структурированных следующим образом:

Каждый узел-массив содержит массив нулевых ключей с основной категорией с именем (строка) --> содержит имя категории (1., 1.1, 1.1.1.) и n-массивов с подузлами. Древовидный массив структурирован по имени, содержит 6 узлов основной категории и n под- и под-подкатегорий для каждого узла. выглядит так:

array:6 [▼
  1 => array:8 [▼
    "" => array:1 [▼
      "mydata" => array:3 [▼
        "id" => 182
        "name" => "1."
        "titel" => "Maincategorie"
      ]
    ]
    1 => array:9 [▼
      "" => array:1 [▼
    "mydata" => array:3 [▼
      "id" => 1
      "name" => "1.1."
      "titel" => "Maincategorie - subcat1"
    ]
  ]
  1 => array:1 [▼
    "" => array:1 [▼
      "mydata" => array:3 [▼
        "id" => 2
        "name" => "1.1.1."
        "titel" => "Mainkategorie - subcat1_2"
      ]
    ]
  ]
  2 => array:6 [▶] 
  3 => array:1 [▶]
  4 => array:1 [▶]
  5 => array:1 [▶]
  6 => array:1 [▶]
  7 => array:1 [▶]
  8 => array:1 [▶]
]
2 => array:7 [▶]
3 => array:10 [▶]
4 => array:4 [▶]
5 => array:17 [▶]
6 => array:6 [▶]
7 => array:5 [▶]
]
  2 => array:5 [▶]
  3 => array:7 [▶]
  4 => array:5 [▶]
  5 => array:7 [▶]
  6 => array:6 [▶]
]

Мои вопросы:

  1. Можно ли в Twig вызвать рекурсивную функцию или что-то вроде самовызывающегося макроса?

  2. Или мне нужна функция, чтобы сначала установить глубину массива в контроллере? В пустом ключе "" какая у меня основная категория?

  3. Какое лучшее решение для создания дерева из массива?

Большое спасибо - Ifgenia.

21.08.2017

  • Вы должны вложить циклы for, чтобы отразить структуры вашего массива, это не так сложно, как кажется :) (twig.symfony.com/doc/2.x/tags/for.html) 21.08.2017
  • Ты пробовал? Разместите код 21.08.2017
  • Возможный дубликат Как визуализировать дерево в Twig 22.08.2017
  • у меня было то же решение с вложенным для, но оно неэффективно, имхо, и у меня все еще есть некоторые проблемы, если у какого-то ребенка нет вложенных дочерних элементов... но я сейчас тестирую его и опубликую свое окончательное решение. Я попросил какое-то лучшее решение, затем вложил for, и у меня также есть неопределенная глубина уровня, а у некоторых родителей нет дочерних элементов. 22.08.2017
  • @DarkBee - я видел эту тему, но решение с вложенными fors не очень полезно, потому что у меня неопределенная глубина дерева, а у некоторых дочерних дочерних элементов нет дочерних элементов, например ... то, что я хотел, - это рекурсивная функция или что-то в этом роде 22.08.2017
  • @Ifgenia, вам нужно использовать решение с макросом 22.08.2017
  • @Ifgenia stackoverflow.com/questions/45955614 /многоуровневое-меню-с-ветвью/ 30.08.2017
  • спасибо, DarkBee, я попробую этот подход. фактическое быстрое и грязное решение по-прежнему остается вложенным 05.09.2017

Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..