gpt4 book ai didi

PHP - 如何修改对象数组中的category_name和subcategory_name?

转载 作者:行者123 更新时间:2023-11-29 09:49:30 26 4
gpt4 key购买 nike

看看我现有的代码:

class CategoryController extends ApiController
{
public function getCategory(){
$categories = DB::table('products')
->select('category', 'category_name')
->distinct('category', 'category_name')
->get();
$newArr = [];
foreach ($categories as $value) {
$newArr[$value->category_name] = [];
$subcategories = DB::table('products')
->select('subcategory_name')
->where('subcategory', 'LIKE', '%'. $value->category.'%')
->distinct('subcategory')
->get()->pluck('subcategory_name');
array_push($newArr[$value->category_name], $subcategories);
}
return response()->json([
'data' => $newArr
]);
}

}

响应似乎:

 "data": {
"Food": [
[
"Chicken",
"Egg",
"Pie"
]
],
"Drinks": [
[
"Beer",
"Juice",
"Water"
]
],

但这不是我想要的回应。我需要像:

data: {
{
category_name : "Food",
subcategories_name : ["Chicken", "Eggs", "Pie"]
}
{
category_name : "Drinks",
subcategories_name : ["Beer", "Juice", "Water"]
}
}

如果你不明白代码的某些部分,请问我。我的产品表中有字段,如类别、类别名称、子类别、子类别名称。它所属的代码类别和子类别是相同的代码。我所需要的只是按照我上面写的那样写一个回复。我的逻辑是将所有类别放入类别和子类别中,我设置所有子类别,然后将它们合并到一个数组中。对我来说,结果如何并不重要,重要的是结果。谢谢。

ps。我不知道我的数据库对你有多重要,但有一个产品表和 4 个字段 = 类别、子类别、类别名称、子类别名称。这就是全部。

最佳答案

您需要在输出数组中手动​​分配键。

foreach ($categories as $value) {

$subcategories = DB::table('products')
->select('subcategory_name')
->where('subcategory', 'LIKE', '%'. $value->category.'%')
->distinct('subcategory')
->get()->pluck('subcategory_name');

$newArr[] = [
'category_name' => $value->category_name;
'subcategories_name' => subcategories;
];
}

$newArrValues = array_values($newArr);
$output = json_encode($out);

关于PHP - 如何修改对象数组中的category_name和subcategory_name?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55054130/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com