首頁 >後端開發 >php教程 >取得左右值無限分類的路徑關係

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

WBOY
WBOY原創
2016-07-25 08:50:57931瀏覽
最近需要一个可以显示类似
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. }
复制代码


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn