Php 迭代多层ArrayObject()以打印屏幕上的层次视图

Php 迭代多层ArrayObject()以打印屏幕上的层次视图,php,recursion,iteration,spl,arrayobject,Php,Recursion,Iteration,Spl,Arrayobject,我有一个ArrayObject结构,它的输出非常复杂,它可以/并且由多个层次的关系组成,例如父->子->子->子等等 当使用foreach、for或while循环时,这样的结构非常复杂。我已经研究了SPL迭代器,我认为这是可以使用的。我对整个概念有点不熟悉,所以任何关于在多个级别上循环的建议都会受到欢迎 谢谢根据我的经验,您应该只使用递归函数调用 我的意思是,你可以简单地创建一个函数,它可以做你需要的任何事情,但是在函数的末尾有一个while循环,它可以循环子函数,并在每个子函数上再次调用该函数

我有一个ArrayObject结构,它的输出非常复杂,它可以/并且由多个层次的关系组成,例如父->子->子->子等等

当使用foreach、for或while循环时,这样的结构非常复杂。我已经研究了SPL迭代器,我认为这是可以使用的。我对整个概念有点不熟悉,所以任何关于在多个级别上循环的建议都会受到欢迎


谢谢

根据我的经验,您应该只使用递归函数调用


我的意思是,你可以简单地创建一个函数,它可以做你需要的任何事情,但是在函数的末尾有一个while循环,它可以循环子函数,并在每个子函数上再次调用该函数。通过这种方式,您可以在原始对象的每个子对象上启动函数。

laurencek我过去曾以这种方式处理过该问题,但SPL似乎已经有了处理该问题的类,例如RecursiveArrayIterator和RecursiveIteratorIterator。我简要介绍了这些类,但从未使用过它们。递归函数调用对于我的需求来说总是足够的。您希望实现什么?您想要在深度上迭代的基本指导,还是与您所面临的实际问题相关的更具体的指导?