Laravel 如何组合数据数组并使其更易于使用

Laravel 如何组合数据数组并使其更易于使用,laravel,laravel-8,Laravel,Laravel 8,我正在使用一个可以在搜索后使用的过滤器,这样我就在数据库中创建了一个表,插入了一些类别及其子类别,现在我想将所有这些组合起来,形成一个树状结构。但是我被这个困住了 现在我如何才能做到这一点 [ { “家长类别”:“招聘”, “类别名称”:“职务说明” }, { “家长类别”:“招聘”, “类别名称”:“表格” }, { “家长类别”:“绩效管理体系”, “类别名称”:“职务说明” }, { “父类”:“退出”, “类别名称”:“职务说明” } ]您可以执行以下操作: $result = [];

我正在使用一个可以在搜索后使用的过滤器,这样我就在数据库中创建了一个表,插入了一些类别及其子类别,现在我想将所有这些组合起来,形成一个树状结构。但是我被这个困住了

现在我如何才能做到这一点

[
{
“家长类别”:“招聘”,
“类别名称”:“职务说明”
},
{
“家长类别”:“招聘”,
“类别名称”:“表格”
},
{
“家长类别”:“绩效管理体系”,
“类别名称”:“职务说明”
},
{
“父类”:“退出”,
“类别名称”:“职务说明”
}

]
您可以执行以下操作:

$result = [];

foreach ($categories as $category) {
    if (!isset($result[$category->parent_category])) {
        $result[$category->parent_category] = $category;
    } else {
        $result[$category->parent_category]->category_name .= ', ' . $category->category_name;
    }
}

echo json_encode(array_values($result));
试试这个

$data = [
    [
        "parent_category" => "Recruitment",
        "category_name" => "Job description",
    ],
    [
        "parent_category" => "Recruitment",
        "category_name" => "Forms",
    ],
    [
        "parent_category" => "Performance management system",
        "category_name" => "Job description",
    ],
    [
        "parent_category" => "Exit",
        "category_name" => "Job description",
    ],
];
$result = collect($data)->groupBy('parent_category')->map(function ($categories, $parentCategory) {
    return [
        'parent_category' => $parentCategory,
        'category_name' => collect($categories)->pluck('category_name')->unique()->join(', '),
    ];
})->values();

第一个应该是结果类别名称:
Forms,Forms
根据您的示例,否?请仔细检查您编辑的示例问题这实际上是我想要的,谢谢@hthell的帮助