PHP将多维对象格式化为“选择”下拉列表中的“深度”

PHP将多维对象格式化为“选择”下拉列表中的“深度”,php,object,recursion,categories,Php,Object,Recursion,Categories,我如何将以下内容作为一个漂亮的格式选择下拉列表(包括每个级别的“--”)进行回应 Array ( [0] => stdClass Object ( [id] => 2 [user_id] => 6 [title] => First Category [parent_id] => 0 ) [1] => stdClass

我如何将以下内容作为一个漂亮的格式选择下拉列表(包括每个级别的“--”)进行回应

Array
(
    [0] => stdClass Object
        (
            [id] => 2
            [user_id] => 6
            [title] => First Category
            [parent_id] => 0
        )

    [1] => stdClass Object
        (
            [id] => 4
            [user_id] => 6
            [title] => HTML Times
            [parent_id] => 0
        )

    [2] => stdClass Object
        (
            [id] => 5
            [user_id] => 6
            [title] => Email Ninja
            [parent_id] => 0
        )

    [3] => stdClass Object
        (
            [id] => 6
            [user_id] => 6
            [title] => Taco Night
            [parent_id] => 0
        )

    [4] => stdClass Object
        (
            [id] => 7
            [user_id] => 6
            [title] => SSH
            [parent_id] => 0
            [childs] => Array
                (
                    [0] => stdClass Object
                        (
                            [id] => 10
                            [user_id] => 6
                            [title] => Root Commands
                            [parent_id] => 7
                        )

                    [1] => stdClass Object
                        (
                            [id] => 11
                            [user_id] => 6
                            [title] => Shell
                            [parent_id] => 7
                        )

                    [2] => stdClass Object
                        (
                            [id] => 12
                            [user_id] => 6
                            [title] => Linux
                            [parent_id] => 7
                        )

                    [3] => stdClass Object
                        (
                            [id] => 13
                            [user_id] => 6
                            [title] => Windows
                            [parent_id] => 7
                        )

                )

        )

    [5] => stdClass Object
        (
            [id] => 8
            [user_id] => 6
            [title] => Dinner Tonight
            [parent_id] => 0
            [childs] => Array
                (
                    [0] => stdClass Object
                        (
                            [id] => 9
                            [user_id] => 6
                            [title] => Mexican
                            [parent_id] => 8
                            [childs] => Array
                                (
                                    [0] => stdClass Object
                                        (
                                            [id] => 14
                                            [user_id] => 6
                                            [title] => Tacos
                                            [parent_id] => 9
                                        )

                                )

                        )

                )

        )

)
我知道这个话题涉及面很广,但对我来说没有太大影响。经过两天的阅读。。。和阅读。。。和阅读。。。我终于能够从我的数据库中获取这些数据。现在,我似乎无法让它比第一类更深入地反映出来

谢谢你的帮助和耐心

以下是我目前获得父母的方式:

$level=0

$categories=$this->mycrate->build_categories()

echo';
函数递归写入($categories){
foreach($categories作为$category){
回显“.$category->title.”;
递归写入($category->parent\u id);
}
}
递归写入($categories);
回声';
函数递归写入($categories){
foreach($categories作为$category){
回显“.$category->title.”;
递归写入($category->childs);
}
}
递归写入($categories);

首先,递归部分需要在子元素上调用,而不是在父ID上调用。

谢谢您的帮助。实际上,这个函数正在拉取第一级的子类别,但在那里停止了。啊,我明白了。首先我是对的-你确实需要一个递归函数。。。我的错。我会更新我的答案。是的!所有的人都这样。我想我可以用适当的'--'从那里得到等级。我非常感谢你的帮助!!
    echo '<select class="input-block-level">';

    function RecursiveWrite($categories) {
        foreach ($categories as $category) {
            echo '<option value="'.$category->id.'">'.$category->title.'</option>';
            RecursiveWrite($category->parent_id);
        }
    }

    RecursiveWrite($categories);

    echo '</select>';
function RecursiveWrite($categories) {
    foreach ($categories as $category) {
        echo '<option value="'.$category->id.'">'.$category->title.'</option>';
        RecursiveWrite($category->childs);
    }
}

RecursiveWrite($categories);