擷取左右值無限分類的路徑關係

來源:互聯網
上載者:User
最近需要一個可以顯示類似
1 > 2
1 > 2 > 3
1 > 2 > 3 > 4
這樣的玩意兒,自己不會演算法,硬是走了很多彎路,當然希望各位有更好的方法,歡迎吐槽。
  1. public function getPaths($nodes)
  2. {
  3. $levels = $paths = array();
  4. // 重組數組層級
  5. foreach ($nodes as $id => $node)
  6. {
  7. $levels[$node['level']][$id] = $node;
  8. }
  9. for ($i = 0; $i < count($levels); $i++)
  10. {
  11. if (is_array($levels[$i]))
  12. {
  13. foreach ($levels[$i] as $level)
  14. {
  15. $id = $level['id'];
  16. $parent_id = $level['parent_id'];
  17. $parent = $paths[$parent_id];
  18. // 存在父級並取出附加到當前節點
  19. if ($parent)
  20. {
  21. $paths[$id] = $parent;
  22. $paths[$id][] = $level['id'];
  23. }
  24. else
  25. {
  26. $paths[$id][] = $level['id'];
  27. }
  28. }
  29. }
  30. }
  31. return $paths;
  32. }
複製代碼
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.