如何在php中创建树?

时间:2016-02-26 11:45:30

标签: php

我正在尝试在php中生成树。 这是我的代码

$company = array();
        $i = 1;
        foreach($final_array3 as $key => $value) {
            array_push($company, $value);
            $i++;
        }

主阵列是

Array
(
    [Ordinary Income/Expense] => Array
        (
            [0] => stdClass Object
                (
                    [compid] => 1
                    [coaid] => 12877
                    [item] => Ordinary Income/Expense
                    [category] => 0
                    [Auto] => 0
                    [Jan_2015_Budget] => 0
                    [Feb_2015_Budget] => 0
                    [Mar_2015_Budget] => 0
                    [Apr_2015_Budget] => 0
                    [SUM(IF(`trl`.`entrydate` between '2016-1-01' and '2016-02-26', `trl`.`itemvalue`, 0))] => 0
                    [isTotal] => 0
                    [isparent] => 1
                )

            [1] => stdClass Object
                (
                    [compid] => 2
                    [coaid] => 13571
                    [item] => Ordinary Income/Expense
                    [category] => 0
                    [Auto] => 0
                    [Jan_2015_Budget] => 0
                    [Feb_2015_Budget] => 0
                    [Mar_2015_Budget] => 0
                    [Apr_2015_Budget] => 0
                    [SUM(IF(`trl`.`entrydate` between '2016-1-01' and '2016-02-26', `trl`.`itemvalue`, 0))] => 0
                    [isTotal] => 0
                    [isparent] => 0
                )

        )

    [Income] => Array
        (
            [0] => stdClass Object
                (
                    [compid] => 1
                    [coaid] => 12878
                    [item] => Income
                    [category] => 12877
                    [Auto] => 1
                    [Jan_2015_Budget] => 0
                    [Feb_2015_Budget] => 0
                    [Mar_2015_Budget] => 0
                    [Apr_2015_Budget] => 0
                    [SUM(IF(`trl`.`entrydate` between '2016-1-01' and '2016-02-26', `trl`.`itemvalue`, 0))] => 0
                    [isTotal] => 0
                    [isparent] => 1
                )

            [1] => stdClass Object
                (
                    [compid] => 2
                    [coaid] => 13572
                    [item] => Income
                    [category] => 13571
                    [Auto] => 1
                    [Jan_2015_Budget] => 0
                    [Feb_2015_Budget] => 0
                    [Mar_2015_Budget] => 0
                    [Apr_2015_Budget] => 0
                    [SUM(IF(`trl`.`entrydate` between '2016-1-01' and '2016-02-26', `trl`.`itemvalue`, 0))] => 0
                    [isTotal] => 0
                    [isparent] => 0
                )

        )
)

并且所需的输出是

Array
(
    [Ordinary Income/Expense] => Array
        (
            [0] => stdClass Object
                (
                    [compid] => 1
                    [coaid] => 12877
                    [item] => Ordinary Income/Expense
                    [category] => 0
                    [Auto] => 0
                    [Jan_2015_Budget] => 0
                    [Feb_2015_Budget] => 0
                    [Mar_2015_Budget] => 0
                    [Apr_2015_Budget] => 0
                    [SUM(IF(`trl`.`entrydate` between '2016-1-01' and '2016-02-26', `trl`.`itemvalue`, 0))] => 0
                    [isTotal] => 0
                    [isparent] => 1
                    [children] => stdClass Object(
                                    [compid] => 1
                                    [coaid] => 12878
                                    [item] => Income
                                    [category] => 12877
                                    [Auto] => 1
                                    [Jan_2015_Budget] => 0
                                    [Feb_2015_Budget] => 0
                                    [Mar_2015_Budget] => 0
                                    [Apr_2015_Budget] => 0
                                    [SUM(IF(`trl`.`entrydate` between '2016-1-01' and '2016-02-26', `trl`.`itemvalue`, 0))] => 0
                                    [isTotal] => 0
                                    [isparent] => 1
                                )
                )

            [1] => stdClass Object
                (
                    [compid] => 2
                    [coaid] => 13571
                    [item] => Ordinary Income/Expense
                    [category] => 0
                    [Auto] => 0
                    [Jan_2015_Budget] => 0
                    [Feb_2015_Budget] => 0
                    [Mar_2015_Budget] => 0
                    [Apr_2015_Budget] => 0
                    [SUM(IF(`trl`.`entrydate` between '2016-1-01' and '2016-02-26', `trl`.`itemvalue`, 0))] => 0
                    [isTotal] => 0
                    [isparent] => 0
                    [children] => stdClass Object(
                            [compid] => 2
                            [coaid] => 13572
                            [item] => Income
                            [category] => 13571
                            [Auto] => 1
                            [Jan_2015_Budget] => 0
                            [Feb_2015_Budget] => 0
                            [Mar_2015_Budget] => 0
                            [Apr_2015_Budget] => 0
                            [SUM(IF(`trl`.`entrydate` between '2016-1-01' and '2016-02-26', `trl`.`itemvalue`, 0))] => 0
                            [isTotal] => 0
                            [isparent] => 0
                        )
                )
        )
)

所以我想制作一个类别树。父子关系是stdclass对象中的coaid是父级和类别,与stdcalss对象中的coaid键相同是子级。

现在可以请你建议我怎么做。树可以是5级层次结构。

谢谢

0 个答案:

没有答案
相关问题