在 Laravel 中创建 JSON 供稿时出现问题

Issue creating JSON feed in Laravel

我正在尝试使用以下格式的两个数据数组创建一个 JSON 提要。

{ 
   "items":[ 
      { 
         "category_id":1,
         "category_name":"Mens Clothing",
         "child":[ 
            { 
               "product_id":1,
               "product_name":"Shirts"
            },
            { 
               "product_id":2,
               "product_name":"T-Shirts"
            }
         ]
      }
   ]
}

但是,我越来越像下面这样了。

{ 
   "items":[ 
      { 
         "category_id":1,
         "category_name":"Mens Clothing",
         "child":[ 

         ]
      }
   ],
   "child":[ 
      { 
         "product_id":1,
         "product_name":"Shirts"
      },
      { 
         "product_id":2,
         "product_name":"T-Shirts"
      }
   ]
}

我在Laravel中写了以下内容。

$data = [
    'items' => [],
];

foreach ($categories as $key => $category) {
    $data['items'][$key] = [
        'category_id' => $category->id,
        'category_name' => $category->category_name,
        'child' => [],
    ];
}

foreach ($products as $key => $product) {
    $data['child'][$key] = [
        'product_id' => $product->id,
        'product_name' => $product->product_name
    ];
}

谁能帮我解决这个问题?

如果产品有 'category_id' - 像下面这样的东西可以工作:

$data = [
    'items' => [],
];

foreach ($categories as $key =>  $category) {
    $children = [];
    foreach ($products as $key => $product){
        if($product->category_id == $category->id) {
            $children[] = $product;
        }
    }
    $data['items'][$key] = [
        'category_id' => $category->id,
        'category_name'=> $category->category_name,
        'child' => $children,
    ];
}