0

我在 PHP 中有以下对象/数组结构:

目的
(
    id => *随机数 10000-99999*
    名字 =>
    parent => *对父对象的引用* // null,所以这是根元素
    孩子 => 数组
        (
            [0] => 对象
                (
                    id => *随机数 10000-99999*
                    名称 => 行
                    parent => *对父对象的引用* // 指向根元素
                    孩子 => 数组
                        (
                            [0] => 对象
                                (
                                    id => *随机数 10000-99999*
                                    名称 => 列
                                    parent => *对父对象的引用* //行
                                    孩子 => 数组
                                        (
                                            [0] => 对象
                                                (
                                                    id => *随机数 10000-99999*
                                                    名称 => 链接
                                                    parent => *对父对象的引用* //列
                                                    孩子 => 数组 ()
                                                )
                                        )
                                )
                            [1] => 对象
                                (
                                    id => *随机数 10000-99999*
                                    名称 => 列 2
                                    parent => *对父对象的引用* //行
                                    孩子 => 数组
                                        (
                                            [0] => 对象
                                                (
                                                    id = *随机数10000-99999*
                                                    名称 = 文章
                                                    parent => *对父对象的引用* // column2
                                                    孩子 => 数组 ()
                                                )
                                        )
                                )
                            [2] => 对象
                                (
                                    id = *随机数10000-99999*
                                    名称 = 列 3
                                    parent => *对父对象的引用* //行
                                    孩子 => 数组 ()
                                )
                        )
                )
            [1] => 对象
                (
                    id = *随机数10000-99999*
                    名称 = 链接 2
                    parent => *对父对象的引用* // 指向根元素
                    孩子 => 数组 ()
                )
        )
)

我想从最深的对象处理这个变量。进出。像这样:

  1. 关联
  2. 柱子
  3. 文章
  4. 第 2 列
  5. 第 3 列
  6. 关联

有没有人对此有很好的解决方案?我可以为此编写合适的算法。我只想知道是否有人有经过验证的解决方案。

4

1 回答 1

0

无论解决方案如何,您可能都需要迭代到数组中以找到最深的“名称”,然后再迭代回来。您可以通过存储第一次迭代来最小化开销,并在找到最深时自动反转它。

抱歉,午餐迫在眉睫,所以没有时间提供一个工作示例;)

于 2013-04-24T10:31:08.933 回答