Как преобразовать php иерархический массив во вложенные множества?

У меня есть иерархический массив.

Array
(
[0] => Array
(
[id] => 28
)

[1] => Array
(
[id] => 29
)

[2] => Array
(
[id] => 30
[children] => Array
(
[0] => Array
(
[id] => 31
)

)

)

)

Мне нужно получить ключи «влево», «вправо» и «глубина» для вложенных множеств.

Я нашел похожий вопрос здесь:
PHP конвертировать массив в иерархический вложенный набор для базы данных.

Но ответ из этой ветки не работает правильно.

У него нет клавиши «глубина», а вычисление клавиш «влево» и «вправо» неверно.

Ожидаемый результат:

Array
(
[0] => Array
(
[id] => 27
[lft] => 1
[rgt] => 10
[depth] => 0
)

[1] => Array
(
[id] => 28
[lft] => 2
[rgt] => 3
[depth] => 1
)

[2] => Array
(
[id] => 29
[lft] => 4
[rgt] => 5
[depth] => 1
)

[3] => Array
(
[id] => 30
[lft] => 6
[rgt] => 9
[depth] => 1
)

[4] => Array
(
[id] => 31
[lft] => 7
[rgt] => 8
[depth] => 2
)
)

[id] => 27 — : это корневой узел, но я не показываю его пользователям.

Пожалуйста, помогите мне решить эту проблему.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]