[经验分享] 无限极分类算法,你必须要知道!

[复制链接]
查看1711 | 回复7 | 2019-1-8 09:18:57 | 显示全部楼层 |阅读模式
[align=center][align=left][color=rgb(51, 51, 51)][font=-apple-system-font, BlinkMacSystemFont, &quot][size=17px]无限级分类是开发中常见的情况,也经常会在面试,主考官问到,笔试中遇到,因此本文对常见的无限极分类算法进行总结归纳,其实大多数就是迭代与递归。[/size][/font][/color][/align][align=left][color=rgb(51, 51, 51)][font=-apple-system-font, BlinkMacSystemFont, &quot][size=17px][b]1.循环迭代实现[/b][/size][/font][/color][/align]$arr = [
  [color=rgb(174, 135, 250)]1[/color]=>[[color=rgb(238, 220, 112)]'id'[/color]=>[color=rgb(174, 135, 250)]1[/color],[color=rgb(238, 220, 112)]'name'[/color]=>[color=rgb(238, 220, 112)]'父1'[/color],[color=rgb(238, 220, 112)]'father'[/color]=>[color=rgb(248, 35, 117)]NULL[/color]],
  [color=rgb(174, 135, 250)]2[/color]=>[[color=rgb(238, 220, 112)]'id'[/color]=>[color=rgb(174, 135, 250)]2[/color],[color=rgb(238, 220, 112)]'name'[/color]=>[color=rgb(238, 220, 112)]'父2'[/color],[color=rgb(238, 220, 112)]'father'[/color]=>[color=rgb(248, 35, 117)]NULL[/color]],
  [color=rgb(174, 135, 250)]3[/color]=>[[color=rgb(238, 220, 112)]'id'[/color]=>[color=rgb(174, 135, 250)]3[/color],[color=rgb(238, 220, 112)]'name'[/color]=>[color=rgb(238, 220, 112)]'父3'[/color],[color=rgb(238, 220, 112)]'father'[/color]=>[color=rgb(248, 35, 117)]NULL[/color]],
  [color=rgb(174, 135, 250)]4[/color]=>[[color=rgb(238, 220, 112)]'id'[/color]=>[color=rgb(174, 135, 250)]4[/color],[color=rgb(238, 220, 112)]'name'[/color]=>[color=rgb(238, 220, 112)]'儿1-1'[/color],[color=rgb(238, 220, 112)]'father'[/color]=>[color=rgb(174, 135, 250)]1[/color]],
  [color=rgb(174, 135, 250)]5[/color]=>[[color=rgb(238, 220, 112)]'id'[/color]=>[color=rgb(174, 135, 250)]5[/color],[color=rgb(238, 220, 112)]'name'[/color]=>[color=rgb(238, 220, 112)]'儿1-2'[/color],[color=rgb(238, 220, 112)]'father'[/color]=>[color=rgb(174, 135, 250)]1[/color]],
  [color=rgb(174, 135, 250)]6[/color]=>[[color=rgb(238, 220, 112)]'id'[/color]=>[color=rgb(174, 135, 250)]6[/color],[color=rgb(238, 220, 112)]'name'[/color]=>[color=rgb(238, 220, 112)]'儿1-3'[/color],[color=rgb(238, 220, 112)]'father'[/color]=>[color=rgb(174, 135, 250)]1[/color]],
  [color=rgb(174, 135, 250)]7[/color]=>[[color=rgb(238, 220, 112)]'id'[/color]=>[color=rgb(174, 135, 250)]7[/color],[color=rgb(238, 220, 112)]'name'[/color]=>[color=rgb(238, 220, 112)]'儿2-1'[/color],[color=rgb(238, 220, 112)]'father'[/color]=>[color=rgb(174, 135, 250)]2[/color]],
  [color=rgb(174, 135, 250)]8[/color]=>[[color=rgb(238, 220, 112)]'id'[/color]=>[color=rgb(174, 135, 250)]8[/color],[color=rgb(238, 220, 112)]'name'[/color]=>[color=rgb(238, 220, 112)]'儿2-1'[/color],[color=rgb(238, 220, 112)]'father'[/color]=>[color=rgb(174, 135, 250)]2[/color]],
  [color=rgb(174, 135, 250)]9[/color]=>[[color=rgb(238, 220, 112)]'id'[/color]=>[color=rgb(174, 135, 250)]9[/color],[color=rgb(238, 220, 112)]'name'[/color]=>[color=rgb(238, 220, 112)]'儿3-1'[/color],[color=rgb(238, 220, 112)]'father'[/color]=>[color=rgb(174, 135, 250)]3[/color]],
  [color=rgb(174, 135, 250)]10[/color]=>[[color=rgb(238, 220, 112)]'id'[/color]=>[color=rgb(174, 135, 250)]10[/color],[color=rgb(238, 220, 112)]'name'[/color]=>[color=rgb(238, 220, 112)]'儿3-1-1'[/color],[color=rgb(238, 220, 112)]'father'[/color]=>[color=rgb(174, 135, 250)]9[/color]],
  [color=rgb(174, 135, 250)]11[/color]=>[[color=rgb(238, 220, 112)]'id'[/color]=>[color=rgb(174, 135, 250)]11[/color],[color=rgb(238, 220, 112)]'name'[/color]=>[color=rgb(238, 220, 112)]'儿1-1-1'[/color],[color=rgb(238, 220, 112)]'father'[/color]=>[color=rgb(174, 135, 250)]4[/color]],
  [color=rgb(174, 135, 250)]12[/color]=>[[color=rgb(238, 220, 112)]'id'[/color]=>[color=rgb(174, 135, 250)]12[/color],[color=rgb(238, 220, 112)]'name'[/color]=>[color=rgb(238, 220, 112)]'儿2-1-1'[/color],[color=rgb(238, 220, 112)]'father'[/color]=>[color=rgb(174, 135, 250)]7[/color]],
];
[color=rgb(248, 35, 117)]function generateTree($items)[/color]{
  $tree = [color=rgb(248, 35, 117)]array[/color]();
  [color=rgb(248, 35, 117)]foreach[/color]($items as $item){
    [color=rgb(248, 35, 117)]if[/color]([color=rgb(248, 35, 117)]isset[/color]($items[$item[[color=rgb(238, 220, 112)]'father'[/color]]])){
      $items[$item[[color=rgb(238, 220, 112)]'father'[/color]]][[color=rgb(238, 220, 112)]'son'[/color]][] = &$items[$item[[color=rgb(238, 220, 112)]'id'[/color]]];
    }[color=rgb(248, 35, 117)]else[/color]{
      $tree[] = &$items[$item[[color=rgb(238, 220, 112)]'id'[/color]]];
    }
  }
  [color=rgb(248, 35, 117)]return[/color] $tree;
}
$tree = generateTree($arr);
print_r(json_encode($tree));

无限极分类算法,你必须要知道!

无限极分类算法,你必须要知道!

[/align]

回复

使用道具 举报

010101 | 2019-1-8 09:19:12 | 显示全部楼层
沙发~支持悟空源码!
回复

使用道具 举报

索支较 | 2021-8-30 22:56:41 | 显示全部楼层
5kym.cn这个站资源太全了
回复

使用道具 举报

fzny61226 | 2022-2-2 04:47:02 | 显示全部楼层
资源太多了,准备办个会员
回复

使用道具 举报

我能陪你变老 | 2022-2-6 06:44:06 | 显示全部楼层
很不错的资源站
回复

使用道具 举报

諾篱hy | 2022-3-9 19:39:01 | 显示全部楼层
找了很多地方都不能下载,终于在悟空源码找到了
回复

使用道具 举报

123457608 | 2022-6-26 08:05:27 | 显示全部楼层
站长真良心,这么大的资源站都是免费下载
回复

使用道具 举报

123457468 | 2022-7-3 14:21:04 | 显示全部楼层
悟空源码太厉害,资源真多!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则