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);