Laravel中如何将分类与子分类查询结果合并为一维数组?
解决方案
你需要调整循环内的逻辑,不要将分类名和子分类数组作为嵌套数组存入,而是把分类名单独加入结果数组,再将子分类的一维数组合并到结果数组中,修改后的代码如下:
public function searchItem(){ $categories = ServiceCategory::with('subCategories')->get(); $categoryArray = []; foreach ($categories as $category) { // 先添加当前分类名称 $categoryArray[] = $category->category; // 合并子分类数组到结果数组 $categoryArray = array_merge($categoryArray, $category->subCategories->pluck('subcategory')->toArray()); } return $categoryArray; }
代码说明
- 先将当前分类的名称直接追加到
$categoryArray中 - 使用
array_merge()函数把子分类的一维数组和$categoryArray合并,让所有元素处于同一层级 - 若存在多个主分类,每个主分类的名称及其下子分类会按顺序依次存入一维数组
内容的提问来源于stack exchange,提问作者Hotdot Cyber
相关产品推荐
相关产品推荐

