递归格式化php node-> child->子级别

时间:2013-09-01 10:13:56

标签: php recursion hierarchy

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

需要将层次结构格式化为report / csv,正确缩进/层次结构,我需要一个获取数组的php函数,并创建如下的层次结构。我知道起始节点是“Sales”;

//[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%

1 个答案:

答案 0 :(得分:0)

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

将$ last_so $ last_activity $ last_milestone初始化为null;

遍历数组中的所有条目。

提取$ so,$ activity,$ milestone;

当$ so更改(通过将其与$ last_so进行比较检测到)输出$以作为第一个标头,并将$ last_activity $ last_milestone重置为null;

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

当$ milestone更改输出$ milestone作为第三个标题

在第四列中输出百分比。

现在将$ last_so,..等更新为$ So,..等。

继续循环。