范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

实现高大上的无限级分类,全靠这几个方法了

  所谓无限级分类,指的是分类是无限级延续下去的。比如影视类别分为电影和电视,电影又分为动作片和剧情片,悬疑片,动作片又分为国产动作片和美国动作片,国产动作片又分为90年国产动作片和…..等等。无限层分类,无限个子类。
  如下图所示,这个数据表是无限级分类的缩影。每一行数据的pid代表它的上级,上级还有上级,直到pid为0。
  现在问题来了,任意找出一条数据怎么知道,它的祖级菜单是哪一条。如果要找到答案就要顺着pid一层一层找上去。有的程序员为了省去麻烦把pid这一列做成了详细的层级的关系,类似于’1,2,5’这种写法,貌似是后期使用会方便一些。可是明明可以靠逻辑实现的数据非要重复写出来不太符合建表的规则。所以我们还是按这张表来实现几个需求。
  1,任意一条数据找到祖级菜单。2,将数据转换成多维数组,表现层级关系。3,将数据转换成按层级顺序的一维数组,例如总部-北京总代理-北京朝阳区总代理-北京朝阳区-天津总代理….依次罗列直到最底层。
  解释起来实现有些吃力,小编就直接上源码了。
  第一题实现方法:public function tree2($arr)
  {
  $temp = array();
  foreach($arr as $v)
  {
  $temp[$v[id]] = $v;
  }
  $temp2 = $temp;
  foreach($temp as $k=>$v)
  {
  if($k!=1)
  {
  $pid = $v[pid];
  $parent_id = $v[id];
  while($pid!=1)
  {
  $arr1 = $temp[$pid];
  $parent_id = $arr1[id];
  $pid = $arr1[pid];
  }
  $temp[$k][parent_id] = $parent_id;
  }else{
  $temp[$k][parent_id] = 1;
  }
  }
  return $temp;
  }
  第二题实现方法:function generateTree($arr){
  $tree = array();
  foreach($arr as $arrs){
  if(isset($arr[$arrs["pid"]])){
  $arr[$arrs["pid"]]["son"][] = &$arr[$arrs["id"]];
  }else{
  $tree[] = &$arr[$arrs["id"]];
  }
  }
  return $tree;
  }
  第三题实现方法:public function tree2($arr)
  {
  $temp = array();
  foreach($arr as $v)
  {
  $temp[$v[id]] = $v;
  }
  $temp2 = $temp;
  foreach($temp as $k=>$v)
  {
  if($k!=1)
  {
  $pid = $v[pid];
  $parent_id = $v[id];
  while($pid!=1)
  {
  $arr1 = $temp[$pid];
  $parent_id = $arr1[id];
  $pid = $arr1[pid];
  }
  $temp[$k][parent_id] = $parent_id;
  }else{
  $temp[$k][parent_id] = 1;
  }
  }
  $temp1 = array();
  foreach($temp as $v)
  {
  $temp1[$v[parent_id]][] = $temp2[$v[id]];
  }
  return $this->recycle($temp1);
  }
  public function recycle($arr)
  {
  static $tmp=array();
  if (!is_array ($arr))
  {
  return false;
  }
  foreach ($arr as $val )
  {
  if (!is_array ($arr))
  {
  return false;
  }
  if(isset($val[id]))
  {
  $tmp[]=$val;
  }else
  {
  $this->recycle($val);
  }
  }
  return $tmp;
  }

SpringGateway集成nacos实现动态路由配置本文主要介绍SpringGateway通过集成nacos实现路由动态配置,达到不重启API网关实现动态暴露内部微服务接口的目的。主要流程如下一创建Maven项目testgatewa管清友中小企业生存状况对互联网行业发展更重要中新经纬12月30日电题中小企业生存状况对互联网行业发展更重要作者管清友经济学家如是金融研究院院长民众对互联网行业从全力支持,到口碑两极分化,现在则呈现普遍质疑与批评。如果分析讨论扎心了扎克伯格被美国刊物评为年度恶人原标题扎心了,扎克伯格被美国刊物评为年度恶人环球网报道实习记者王艺璇据美国新闻周刊报道,社交平台脸书的创始人扎克伯格日前被新共和(TheNewRepublic)刊物评为年度恶人,理属于国货的98英寸电视时代到来!TCL销量破万,占比第一2021年电视行业的变化可谓翻天覆地,除了MiniLED全面量产崛起,超大屏电视也在飞速发展。去年,整个市场上的98英寸的电视只有小米RedmiMAX98这一款,而到了2021年,全球最受欢迎的18个音响品牌一个好的扬声器是必需品,消费市场充斥着多种类型的设备,旨在满足个人需求,无论是汽车家庭剧院还是计算机。由于其清晰度和深度,它带来了聆听新水平的沉浸式体验。通过从您的扬声器中捕捉充满达摩院发布2022十大科技趋势覆盖人工智能芯片等领域12月28日,阿里巴巴达摩院发布2022十大科技趋势,通过定量发散与定性收敛结合的研究方法,提出了2022年可能照进现实的十大科技趋势,覆盖人工智能芯片计算和通信等领域。达摩院首先限流算法基本实现限流算法在开发高并发系统时有三把利器用来保护系统缓存降级限流,今天我们就谈谈限流缓存缓存的目的是提升系统访问速度和增大系统处理容量降级降级是当服务器压力剧增的情况下,根据当前业务情你每天用来涨知识的手机应用程序有哪些?推荐4个小众但高质的APP,让你大开眼界!使无聊变得有趣,还能涨知识,增加谈资!每天一看,活到99岁,1。全历史被用户为神仙app的可视化的历史知识科普产品。支持苹果安卓双平台,同耳聋戴助听器能缓解听力下降问题吗?助听器是没有治疗的作用,但是可以刺激听神经,有助于延缓听力下降的速度。这个应该要看听力是什么原因引起的,一般情况下你的助听器只要是经过专业验配的话佩戴助听器是可以保护你的残余听力的怎么卸载找不到程序的流氓软件?卸载流氓软件不是难点,难点是怎么找出这个流氓软件。对于莫名其妙的弹窗或广告,你我的心情都是一样的,深恶痛绝。比如,我就经常遇到我的电脑桌面右下角就经常有弹窗,烦死人了。那么,我怎么分享下你在用的APP?有哪些推荐吗?1。远程控制神器ToDesk支持版本IOSLinuxWindowsAndriodMacOS使用用途一款免费的专业远程控制远程办公软件,可轻松适用于各种远程办公。在主控电脑与被控电脑
试驾赛力斯华为智选SF5一款没有里程焦虑的车自上市以来,赛力斯华为智选SF5受到了广泛关注与热议,成为增程式电动车市场的当红明星车型。8月26日,赛力斯华为智选SF5济南媒体品鉴会在华为授权体验店Plus(济南印象城)举行。首款OPPO平板被曝光,超窄边框设计你喜欢吗?新时代里越来越多的线上教育,线上会议,远程办公的方式改变了我们的习惯,这也让平板类产品又有了一波新的热度,表现十分活跃,许多品牌厂商都在这个领域中又进行了新布局,涵盖了不同的定位,又跳票一个?miniLED屏MacBookPro或推迟发布昨天有消息称,AppleWatchSeries7因为设计过于复杂,有可能缺席这一次苹果秋季新品发布会,今天又有一个产品可能会推迟发布(如果有的话)。产业链方面的人士透露,在芯片短缺2021年天猫双11正式公布双节棍节奏预售不用再熬夜一年一度的双11又来了!9月2日,阿里巴巴副总裁天猫副总裁吹雪在阿里妈妈m峰会上正式公布了今年双11节奏。吹雪介绍,今年双11和去年一样,依旧保持双节棍的节奏设计,分两个阶段售卖。马上就来!谷歌Pixel6被曝或9月发布,将搭载Android12和自研芯片此前各方的消息都显示,苹果iPhone13系列将会在9月正式发布,虽然苹果手机的关注度一直很高,但却可能并不是9月份手机市场唯一的焦点,因为九月份其他品牌同样有新机发布,比如谷歌P特斯拉刹车失灵,是单踏板模式的锅吗?摘要百年驾驶习惯被单踏板模式打破?电动化时代的驾车安全需要人车之间相互学习图源IC编者按近期工信部的回复表明上给了特斯拉一定的背书,但如果特斯拉早早就给到车主这种选择的权利,事情也淘宝持续改名动作很大或为618决战拼多多抢占流量有关联阿里巴巴今年各种动作幅度很大,这与他们公司当下的处境有关,急需要新的变数来刺激成长。就拿阿里旗下最出名的淘宝来说,近日就做出了前所未有的改进和调整,有人透露这或许跟618大促有关,被嘲讽脸都不要了的荣耀手机值得入手吗?90Hz66W6400万四摄荣耀与华为在年初已经分家,分家之后也是推出了几款机型,今天要说的就是其中一款荣耀V40轻奢版,这款手机在3月底发布,即使在拼多多百亿补贴之下,这款手机也未出现大幅度的降价,可以说保特斯拉为什么抛弃毫米波雷达5月25日,特斯拉官方博客宣布,Autopilot正在过渡到基于摄像头的TeslaVision系统。从2021年5月起,北美制造的Model3和ModelY将不再配备毫米波雷达,这iPhone13Pro曝光取消实体按键,FaceID隐藏式前置随着各大手机厂商纷纷推出自己的旗舰手机,外界也对苹果的迭代产品寄予厚望,希望看到下一代手机iPhone13系列的变化。作为一款流行的Pro车型,iPhone13Pro的渲染也根据曝E周看点丨特斯拉在中国建立数据中心,蔚来与江淮续订制造合同上周,国内新能源汽车市场中有哪些大事件发生?特斯拉宣布已在中国建立数据中心5月25日,特斯拉对外宣布已在中国建立数据中心,以实现数据存储本地化,并将陆续增加更多本地数据中心。接下来