>백엔드 개발 >PHP 튜토리얼 >왼쪽 및 오른쪽 값의 무한 범주의 경로 관계를 가져옵니다.

왼쪽 및 오른쪽 값의 무한 범주의 경로 관계를 가져옵니다.

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB원래의
2016-07-25 08:50:57957검색
最近需要一个可以显示类似
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으로 문의하세요.