У меня есть иерархический массив.
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 — : это корневой узел, но я не показываю его пользователям.
Пожалуйста, помогите мне решить эту проблему.
Задача ещё не решена.
Других решений пока нет …