Heim  >  Artikel  >  Backend-Entwicklung  >  获取左右值无限分类的路径关系

获取左右值无限分类的路径关系

WBOY
WBOYOriginal
2016-07-25 08:50:57879Durchsuche
最近需要一个可以显示类似
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 {
  10. if (is_array($levels[$i]))
  11. {
  12. foreach ($levels[$i] as $level)
  13. {
  14. $id = $level['id'];
  15. $parent_id = $level['parent_id'];
  16. $parent = $paths[$parent_id];
  17. // 存在父级并取出附加到当前节点
  18. if ($parent)
  19. {
  20. $paths[$id] = $parent;
  21. $paths[$id][] = $level['id'];
  22. }
  23. else
  24. {
  25. $paths[$id][] = $level['id'];
  26. }
  27. }
  28. }
  29. }
  30. return $paths;
  31. }
复制代码


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn