[請益] 巢狀資料組合陣列
分類的 table 為 categories,結構如下
id primary key
name varchar
order int
category_id int NULL
如果 category_id 是 NULL 的話,就是第一層,order 同時也為 0,今天需要將雙層的目錄撈出後 output 成 JSON 格式
{
"Category":
[
{
"first_name":"a1",
"second_category":
[
"second_name":"a1-1",
"second_name":"a1-2"
]
}
],[
{
"first_name":"a2",
"second_category":
[
"second_name":"a2-1",
"second_name":"a2-2",
"second_name":"a2-3"
]
}
]
}
我的 framework 是 Laravel,所以寫法為
$result = [];
$category = Category::whereNull('category_id')->with('categories);
if (NULL !== $category) {
foreach ($category->get() as $k => $first) {
$result['Category'][$k]['first_name'] = $first->name;
if (NULL !== $first->children) {
foreach ($first->children as $j => $second) {
$result['Category'][$k]['second_category'][$j]['second_name'] = $second->name;
}
}
}
}
return Response::json($result);
不知道有沒有更精簡的做法,假設今天要取到三層,會變的很長
$result['Category'][$k]['second_category'][$j]['third_name'][$i] = $third->name;
※ 編輯: chan15 來自: 1.34.249.126 (11/21 11:17)
推
11/25 04:41, , 1F
11/25 04:41, 1F
討論串 (同標題文章)
PHP 近期熱門文章
PTT數位生活區 即時熱門文章