递归格式化php节点->;儿童->;子级

递归格式化php节点->;儿童->;子级,php,recursion,hierarchy,Php,Recursion,Hierarchy,经过一天的努力解决这个问题,我不得不承认失败了 需要将层次结构格式化为报告/csv,在报告/csv中正确缩进/hierarchy,我需要一个php函数来获取数组,并创建如下层次结构。我知道开始节点是“销售” 对数组进行排序(它似乎已被排序) 将$last_so$last_活动$last_里程碑初始化为空 循环数组中的所有项 提取$so、$activity、$milestone 当$so发生变化时(通过将其与$last_so进行比较检测),输出$so作为第一个标头,并将$last_activity

经过一天的努力解决这个问题,我不得不承认失败了

需要将层次结构格式化为报告/csv,在报告/csv中正确缩进/hierarchy,我需要一个php函数来获取数组,并创建如下层次结构。我知道开始节点是“销售”

对数组进行排序(它似乎已被排序)

将$last_so$last_活动$last_里程碑初始化为空

循环数组中的所有项

提取$so、$activity、$milestone

当$so发生变化时(通过将其与$last_so进行比较检测),输出$so作为第一个标头,并将$last_activity$last_milestone重置为null

当$activity将输出$activity更改为第二个标头,并将$last_milestone重置为null

当$milestone更改时,输出$milestone作为第三个标头

在第四列中输出百分比

现在更新$last_so。。等到$So。。等等


继续循环。

如何在csv格式中“缩进”?使用“”而不是x,或者正在考虑使用空列“、”L2“->”、“”和“L3”使用csv进行此操作是不明智的。请看一下YAML:
//[so]  [activity]  [milestone] [compleated]
    array(
        array("Sales", "Motor", "Documentation", "10%"),
        array("Sales", "Motor", "Communication", "15%"),
        array("Sales", "Motor", "Metro file", "30%"),
        array("Sales", "Motor", "Training", "33%"),
        array("Sales", "Motor", "Client Services", "23%"),
        array("Motor", "Documentation", "Doc revamp", "42%"),
        array("Motor", "Documentation", "SLA", "33%"),
        array("Motor", "Documentation", "KRA", "25%")
    )

Sales           
    Motor       
        Documentation           10%
            Doc revamp          43%
            SLA                 33%
            KRA                 25%
        Communication           15%
        Metro file              30%
        Training                33%
        Client Services         23%

Sales           
xx Motor        
xxx Documentation           10%
xxxx Doc revamp         43%
xxxxx SLA                   33%
xxxxx KRA                   25%
xxxx Communication          15%
xxxx Metro file             30%
xxxx Training               33%
xxxx Client Services        23%