Сбросить ключи массива в многомерном массиве

Я искал вокруг для решения этой проблемы без реального успеха. У меня есть многомерный массив родителей и детей без ограничений по глубине. Он генерируется из базы данных, но проблема в том, что идентификатор элемента становится ключом, используя мой способ преобразования плоского массива в многомерный массив, например:

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 (), но не совсем знаю, что делать дальше. По сути, есть ли способ сбросить числовые клавиши в многомерном массиве?

Спасибо за помощь!

8
задан flicker 9 August 2011 в 03:04
поделиться