У меня есть массив данных, извлеченных из таблицы базы данных, которая использует модель смежности для построения иерархии тем. Каждая запись содержит следующие поля:
- 'id' - уникальный идентификатор ИИ.
- 'name' - отображаемое имя.
- 'parent_id' - идентификатор родительской темы (может быть нулевым для корневых тем)
Массив поступает из базы данных без вложенности и сортируется по идентификатору, как и следовало ожидать. Поле «id» является случайным и произвольным, и на него нельзя полагаться для создания полезного порядка. Я ищу способ отсортировать массив с использованием parent_id, чтобы он находился в правильном порядке смежности, но без вложения конечного результата в подмассивы. Список будет выглядеть следующим образом:
- Корневая тема
- ATopic1
- ATopic2
- Child1ofATopic2
- Child2ofATopic2
- ATopic3
- Корневая темаB
- BTopic1
- BTopic2
- и Т. Д.
Любая помощь или указатель на пример (даже на другом языке) будут высоко оценены.