最近需要一个可以显示类似 1 > 2 1 > 2 > 3 1 > 2 > 3 > 4 这样的玩意儿,自己不会算法,硬是走了很多弯路,当然希望各位有更好的方法,欢迎吐槽。
- public function getPaths($nodes)
- {
- $levels = $paths = array();
- // 重组数组层级
- foreach ($nodes as $id => $node)
- {
- $levels[$node['level']][$id] = $node;
- }
- for ($i = 0; $i < count($levels); $i )
- {
- if (is_array($levels[$i]))
- {
- foreach ($levels[$i] as $level)
- {
- $id = $level['id'];
- $parent_id = $level['parent_id'];
- $parent = $paths[$parent_id];
- // 存在父级并取出附加到当前节点
- if ($parent)
- {
- $paths[$id] = $parent;
- $paths[$id][] = $level['id'];
- }
- else
- {
- $paths[$id][] = $level['id'];
- }
- }
- }
- }
- return $paths;
- }
复制代码
|
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
-
2024-10-22 09:46:29
-
2024-10-13 13:53:41
-
2024-10-12 12:15:51
-
2024-10-11 22:47:31
-
2024-10-11 19:36:51
-
2024-10-11 15:50:41
-
2024-10-11 15:07:41
-
2024-10-11 14:21:21
-
2024-10-11 12:59:11
-
2024-10-11 12:17:31