为了账号安全,请及时绑定邮箱和手机立即绑定

递归函数获取具有父子关系的嵌套项

递归函数获取具有父子关系的嵌套项

PHP
慕森卡 2023-06-24 17:27:01
我想从 Laravel 7 中的 MySQL 表中获取嵌套类别数据。这是 MySQL 表:------------------------|id | name | parent_id ||---|------|-----------|| 1 |   A  |   NULL    ||---|------|-----------|| 2 |   B  |   NULL    ||---|------|-----------|| 3 |   C  |   NULL    ||---|------|-----------|| 4 |  a   |     1     ||---|------|-----------|| 5 |  ab  |     4     ||---|------|-----------|| 6 |  bc  |     4     ||---|------|-----------|| 7 |  ca  |     4     ||---|------|-----------|| 8 |   b  |     2     ||---|------|-----------|| 9 |  2b  |     8     ||---|------|-----------||10 |  3b  |     8     ||---|------|-----------||11 |   c  |     3     ||---|------|-----------| 我想要以下输出:AaabbccaBb2b3bCc我当前的代码(在控制器中)是:public function sort_category($data, $opt){              $contents = Category::where('category_id', $data)->get();        foreach($contents as $c){            $opt .= "<option value='".$c->id."'>".$c->name."</option>";            $count = Category::where('category_id', $c->id)->count();            if($count > 0){                return $this->sort_category($c->id, $opt);            }        }    return $opt;}public function add_category_form(){    $opt = '';    $html = $this->sort_category(NULL, $opt);    return view('admin.add_category', ['categories' => $html]);}电流输出:Aaabbcca正如您所看到的,它不会迭代 B 和 C。任何帮助都会受到赞赏。
查看完整描述

1 回答

?
蛊毒传说

TA贡献1895条经验 获得超3个赞

foreach 循环中有一个 return 语句。

这会导致仅category_id处理第一个值,而不处理其他值。

您不应该直接返回,而是将返回值存储在例如数组中,然后在循环之后返回。


查看完整回答
反对 回复 2023-06-24
  • 1 回答
  • 0 关注
  • 88 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信