使用 php 打印树数组时出错

Error to print tree array with php

我有一个大问题要你解决,这让我很难受。 查看数组响应:

Array (
[category_id] => 1
[parent_id] => 0
[name] => Root Catalog
[is_active] => 
[position] => 0
[level] => 0
[children] => Array
    (
        [0] => Array
            (
                [category_id] => 2
                [parent_id] => 1
                [name] => AutomaBrasil
                [is_active] => 1
                [position] => 1
                [level] => 1
                [children] => Array
                    (
                        [0] => Array
                            (
                                [category_id] => 3
                                [parent_id] => 2
                                [name] => Automação
                                [is_active] => 1
                                [position] => 1
                                [level] => 2
                                [children] => Array
                                    (
                                    )

                            )

                        [1] => Array
                            (
                                [category_id] => 4
                                [parent_id] => 2
                                [name] => Balança
                                [is_active] => 1
                                [position] => 2
                                [level] => 2
                                [children] => Array
                                    (
                                    )

                            )

                        [2] => Array
                            (
                                [category_id] => 5
                                [parent_id] => 2
                                [name] => Caixa Registradora
                                [is_active] => 1
                                [position] => 3
                                [level] => 2
                                [children] => Array
                                    (
                                    )

                            )

                        [3] => Array
                            (
                                [category_id] => 6
                                [parent_id] => 2
                                [name] => Gaveta de Dinheiro
                                [is_active] => 1
                                [position] => 4
                                [level] => 2
                                [children] => Array
                                    (
                                        [0] => Array
                                            (
                                                [category_id] => 10
                                                [parent_id] => 6
                                                [name] => Acessórios
                                                [is_active] => 1
                                                [position] => 1
                                                [level] => 3
                                                [children] => Array
                                                    (
                                                    )

                                            )

                                        [1] => Array
                                            (
                                                [category_id] => 12
                                                [parent_id] => 6
                                                [name] => Gaveta de Dinheiro Automática
                                                [is_active] => 1
                                                [position] => 2
                                                [level] => 3
                                                [children] => Array
                                                    (
                                                    )

                                            )                                                                                 

                                    )

                            )

                        [4] => Array
                            (
                                [category_id] => 7
                                [parent_id] => 2
                                [name] => Impressora
                                [is_active] => 1
                                [position] => 5
                                [level] => 2
                                [children] => Array
                                    (
                                    )

                            )

                    )

            )

    ))

在那之前很漂亮,但是当我尝试 "foreach" 时,它 returns 我是这样的:

1

0

Root Catalog

0

0

Array

我需要它来打印标签内的完整树 <ul> <li>。 我正在使用递归 foreach:

public function createTree($lists) {

    echo '<ul>';
    foreach ($lists as $list) {


        echo '<li>';
        echo $list['name'] . '';
        echo '</li>';


        if (is_array($list['children'])) {

            $this->createTree($list['children']);
        }
    }
    echo '</ul>';
}

你能帮我吗?谢谢!

您可以尝试将输出的子数组包装成 li:

$this->createTree($list['children'] 换成 echo '<li>'; $this->createTree($list['children']); echo '</li>'