Laravel选择框的PHP类别树到数组

Laravel选择框的PHP类别树到数组,php,mysql,arrays,laravel,Php,Mysql,Arrays,Laravel,我正在努力获取数组输出以填充Laravel中的选择框。基本上,使用Laravel,您可以通过刀片发送一个数组来填充select [ '1'=>'Parent Category 1', '2'=>'Sub Category Name 1', '3'=>'Parent Category 2', '4'=>'Sub Category Name' ] 我目前正在做一个快速模拟,以填充一个html列表并正确输出,但经过数小时的研究后,我完全不知

我正在努力获取数组输出以填充Laravel中的选择框。基本上,使用Laravel,您可以通过刀片发送一个数组来填充select

[
    '1'=>'Parent Category 1',
    '2'=>'Sub Category Name 1', 
    '3'=>'Parent Category 2',
    '4'=>'Sub Category Name'
 ]
我目前正在做一个快速模拟,以填充一个html列表并正确输出,但经过数小时的研究后,我完全不知道如何将其转换为一个数组,如上面的示例所示

因此,我的代码如下所示:

public function categories($parent_id) {
    $q = $this->region->select(['title','id'])->where('parent_id','=',$parent_id)->orderBy('sort','asc')->get();
    echo '<ul>';
    foreach($q as $row)
    {
        echo '<li>';
        echo $row->title;
        echo '</li>';
        $this->categories($row->id);
    }
    echo '</ul>';
}

任何关于如何将其转换为单个阵列的建议都将不胜感激

试试这个。我无法尝试,所以代码可能有bug

public function categories_list($parent_id, $Indent)  {
   $q = $this->region->select(['title','id'])->where('parent_id','=',$parent_id)->orderBy('sort','asc')->get();
   $arr = array();
   foreach($q as $row) 
      {
            $arr[] =  $Indent . $row->title;
            $newIndent = $Indent == '' ? '  -- ' : '  '. $Indent;
            $arr = array_merge($arr, $this->categories($row->id, $newIndent));
        }
   return $arr;
}

$array = $this->categories_list($id, '');

你想要一个没有结构的普通数组吗?一个普通数组应该可以工作,只要它保持orderBy,我基本上只需要它像第一个例子一样输出。如果我能像破折号一样缩进潜水艇,那就好了。谢谢。我得到了未定义的变量:arr.@limit添加了初始化谢谢,我已经修复了,但是现在得到,array\u merge:Argument 3不是数组。太棒了。谢谢你的帮助!!这看起来是正确的,非常感谢。
public function categories_list($parent_id, $Indent)  {
   $q = $this->region->select(['title','id'])->where('parent_id','=',$parent_id)->orderBy('sort','asc')->get();
   $arr = array();
   foreach($q as $row) 
      {
            $arr[] =  $Indent . $row->title;
            $newIndent = $Indent == '' ? '  -- ' : '  '. $Indent;
            $arr = array_merge($arr, $this->categories($row->id, $newIndent));
        }
   return $arr;
}

$array = $this->categories_list($id, '');