编程语言
首页 > 编程语言> > PHP递归:扁平化树,保留元数据

PHP递归:扁平化树,保留元数据

作者:互联网

假设您有一棵树,该树代表要保留到表中但保留嵌套级别的族.我想将下面的发布数据放入下面的结构中.

我相信RecursiveIterator可能是实现此目的的方法,但是我不确定该怎么做.我有适用于大多数情况的代码,但它已成为一件丑陋的,肿的事情.如果您愿意,我可以发布.

stdClass Object
(
    [name] => Smith
    [type] => Family
    [children] => Array(
            [1] => stdClass Object
                (
                    [name] => Michael
                    [type] => Uncle
                    [children] => Array(
                            [0] => stdClass Object
                                (
                                    [name] => Jared
                                    [type] => cousin
                                )
                        )
                )
            [2] => stdClass Object
                (
                    [name] => Jeff
                    [type] => Dad
                    [children] => Array(
                            [0] => stdClass Object
                                (
                                    [name] => Jonas
                                    [type] => self
                                )
                            [1] => stdClass Object
                                (
                                    [name] => Leah
                                    [type] => sister
                                    [children] => Array(
                                            [0] => stdClass Object
                                                (
                                                    [name] => Jacob
                                                    [type] => nephew
                                                )
                                        )
                                )
                        )
                )
        )
)

持久性记录应如下所示:

Array
(
    stdClass Object ( [name] => Smith [type] => Family [subgroup] => 0 [parent_subgroup] => )
    stdClass Object ( [name] => Michael [type] => Uncle [subgroup] => 1 [parent_subgroup] => 0 )
    stdClass Object ( [name] => Jared [type] => Cousin [subgroup] => 2 [parent_subgroup] => 1 )
    stdClass Object ( [name] => Jeff [type] => Dad [subgroup] => 1 [parent_subgroup] => 0 )
    stdClass Object ( [name] => Jonas [type] => self [subgroup] => 3 [parent_subgroup] => 1 )
    stdClass Object ( [name] => Leah [type] => sister [subgroup] => 3 [parent_subgroup] => 1 )
    stdClass Object ( [name] => Jacob [type] => nephew [subgroup] => 4 [parent_subgroup] => 3 )     
)

附言不,我和姐姐没有孩子.那只是我的比喻.

标签:adjacency-list,tree,php,recursion
来源: https://codeday.me/bug/20191119/2037729.html