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的帮助