Я искал вокруг для решения этой проблемы без реального успеха. У меня есть многомерный массив родителей и детей без ограничений по глубине. Он генерируется из базы данных, но проблема в том, что идентификатор элемента становится ключом, используя мой способ преобразования плоского массива в многомерный массив, например:
Array(
[28] => Array
(
[id] => 28
[color] => #ff24e5
[name] => Personal
[parent_id] =>
[children] => Array
(
[23] => Array
(
[id] => 23
[color] => #41c3a3
[name] => Shopping
[parent_id] => 28
[children] => Array
(
[22] => Array
(
[id] => 22
[color] => #8be32b
[name] => Deals
[parent_id] => 23
[children] => Array
(
)
)
)
)
[150] => Array
(
[id] => 150
[color] => #e9a3f0
[name] => Orders
[parent_id] => 28
[children] => Array
(
)
)
)
)
)
Я бы хотел, чтобы функция выполняла следующие действия:
Array (
[0] => Array
(
[id] => 28
[color] => #ff24e5
[name] => Personal
[parent_id] =>
[children] => Array
(
[0] => Array
(
[id] => 23
[color] => #41c3a3
[name] => Shopping
[parent_id] => 28
[children] => Array
(
[0] => Array
(
[id] => 22
[color] => #8be32b
[name] => Deals
[user_id] => 1
[selected] => 0
[parent_id] => 23
[children] => Array
(
)
)
)
)
[1] => Array
(
[id] => 150
[color] => #e9a3f0
[name] => Orders
[parent_id] => 28
[children] => Array
(
)
)
)
)
)
По существу переназначьте ключи, начиная с 0. Я пробовал множество методов, но предполагаю, что мне нужно найти рекурсивное решение, и когда я попробовал это, он разрушил мой массив. Я читал о функции array_walk_recursive (), но не совсем знаю, что делать дальше. По сути, есть ли способ сбросить числовые клавиши в многомерном массиве?
Спасибо за помощь!