Php 使用Laravel 5从mysql数据创建多维数组

Php 使用Laravel 5从mysql数据创建多维数组,php,mysql,laravel,multidimensional-array,laravel-5,Php,Mysql,Laravel,Multidimensional Array,Laravel 5,我正在尝试从MySQL结果创建多维数组。这是一种亲子关系。像这样的 $navArr = array(); $pageNav = Page::where('parent_id', 0)->orderBy('nav_order', 'asc')->get(); foreach($pageNav as $parent) { $navArr[$parent->page_id] = $parent; pageNavChildren = Page::where('paren

我正在尝试从MySQL结果创建多维数组。这是一种亲子关系。像这样的

$navArr = array();
$pageNav = Page::where('parent_id', 0)->orderBy('nav_order', 'asc')->get();
foreach($pageNav as $parent) {
    $navArr[$parent->page_id] = $parent;
    pageNavChildren = Page::where('parent_id', $parent->page_id)->orderBy('nav_order', 'asc')->get();
    if($pageNavChildren) {
        foreach($pageNavChildren as $child) {
            $navArr[$parent->page_id]['childrens'] = array($child->page_id => $child);
        }
    }
}
它给了我一个数组,但数组中只有最后一个子元素。我猜是它被写在循环中了。我需要一个包含所有父项的数组,如果父项有子项,请设置子项,并在其中设置该键下的每个子数组。

更改此项:

 if($pageNavChildren) {
     foreach($pageNavChildren as $child) {
          $navArr[$parent->page_id]['childrens'] = array($child->page_id => $child);
      }
  }
致:


嗨@aldrin27我试过了,但出现了以下错误。对App\Page重载元素的间接修改无效,您可以
print\r($pageNav)?我发布了我得到的错误。我无法打印数组,因为使用Laravel,它会发布大量隐藏字段,由于字符限制,我甚至无法复制并粘贴到这里,但我确实发布了上面收到的错误。我只想知道
$pageNav=Page::where('parent_id',0)->orderBy('nav_order',asc')->get()的返回数据如果可以,我会粘贴它,但使用Laravel,它不是一个简单的数据转储。我不能只是打印、复制和粘贴。它有数千个字符。
if($pageNavChildren) {
    foreach($pageNavChildren as $child) {
        $navArr[$parent->page_id]['childrens'][] = array($child->page_id => $child);
    }
}