[請益] 巢狀資料組合陣列

看板PHP作者 (ChaN)時間12年前 (2013/11/21 11:16), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串1/2 (看更多)
分類的 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
最後要轉json,不如搞個nosql來玩更快更有效率
11/25 04:41, 1F
文章代碼(AID): #1IZNichc (PHP)
文章代碼(AID): #1IZNichc (PHP)