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

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

  所谓无限级分类,指的是分类是无限级延续下去的。比如影视类别分为电影和电视,电影又分为动作片和剧情片,悬疑片,动作片又分为国产动作片和美国动作片,国产动作片又分为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;
  }

小米MIXFlip渲染图7英寸折叠屏骁龙8芯片,对标华为价格大下滑折叠屏这两年的销量大增,一方面是因为价格下跌了不少,另一方面折叠屏技术越来越成熟了,易用性和寿命大幅增加,目前三星依然是折叠屏领域里的王者,跟随者有华为小米摩托罗拉,另外荣耀也即将早做准备早脱单!跨年夜的礼物我已经给你挑好了,快来抄作业作者焱公子内容团队陈小星男同胞们,男同胞们,注意啦!不要以为你过了平安夜和圣诞夜就万事大吉了,女生最考验你是不是在意她的时刻就要来了!没错,就是跨年夜!你能不能顺利转正,就看你在跨苹果推出虎年新机,限量2万个苹果推出虎年定制AirTag,限量2万个。将于1月2日和3日,向日本用户提供特别活动,购买在日本购买iPhone12iPhone12mini或iPhoneSE的前20000名客户,王清宪与黄维举行工作会谈中安在线中安新闻客户端讯12月30日下午,省长王清宪与中国科学院院士西北工业大学柔性电子前沿科学中心首席科学家黄维一行举行工作会谈。省委常委副省长张红文参加。黄维院士是我国柔性电子你的手机为什么越来越卡,你知道原因吗手机在我们的生活中扮演着非常重要的角色,是朋友是聊天工具是游戏机是电影院是播放器手机用久了之后,电池续航会越来越差,还会变得卡顿,运行App缓慢,整个处理性也能会越来越差,就像人会节能电机板块或迎来机遇电机板块不仅脚踩新能源车稀土永磁风电军工四大黄金赛道,还是十四五重点规划方向,重要性却被市场严重低估。我国的电机经过很长一段时间的沉寂,终于迎来了利好消息。近期,我国预计在2030华为鸿蒙OS明年冲击欧洲市场,并称正在研究5G芯片为了生存,华为还真是想了很多。无论是宣布一个新系统,还是开发一项新技术,都意味着它一直在努力。因为当华为不够努力的时候,其他厂商就会超越,就会出现更高的销量,这在现在的市场上是很残对!就是她抢了小米12的全球首发小米12VSMotoEdgeX30昨天将小米12对比了VivoS12,是觉得跟小米12发布的时间比较靠近,今天找来了抢小米12(高通骁龙CPU)全球首发的元凶MOTO罗拉Edgex小米12pro搭载小米自研芯片澎湃P1昨天晚上,小米正式发布了小米12系列智能手机,其中小米12Pro搭载了自主研发的芯片澎湃P1。小米12据悉,这款芯片搭配小米的120W充电技术,可以同时实现大容量和高功率充电,满足比小米12更顶?红米K50曝光天玑9000百瓦快充三星柔性屏备受期待的小米12系列终于在昨天发布了,不过小智感觉小米12系列的热度似乎并没有往年来得高,从某东上的预定就能看出,现在都能轻易付定金下单,而往年第一轮早就抢光了。小智认为这次小米广东高院终审判决游戏地图换皮构成侵权新华社广州12月6日电(记者李雄鹰)广东省高级人民法院6日对深圳市腾讯计算机系统有限公司与畅游云端(北京)科技有限公司英雄互娱科技股份有限公司等著作权侵权及不正当竞争纠纷上诉案公开
升级iOS15。4。1的iPhone续航测试iPhone8Plus垫底iPhone11仅第二升级之后的iOS15。4。1的iPhone在续航方面的表现到底如何呢,尤其是老款的iPhone在升级之后的续航表现到底是什么样子的,这次给大家带来了6部iPhone升级iOS15。老外测试iPhoneSE续航不如13mini,小屏旗舰神话再次破灭?苹果于上个月推出第二代iPhoneSE,尽管相比上一代外观没有丝毫变化,电池容量却增加了不到200毫安,不少粉丝开始期待续航改观。在A15芯片的加持下,这款手机续航能够打败iPho木头姐马斯克可能会打开推特(TWTR。US)管理层重组的大门智通财经APP获悉,有华尔街女股神之称的凯西伍德猜测,特斯拉(TSLA。US)总裁埃隆马斯克在获得社交媒体公司推特(TWTR。US)的股权后可能会为这家公司的管理层打开重组的大门。那个被刘强东承诺坚持5年就有一套房的员工如今干满10年怎样了?刘强东作为京东的老大,从独自创业到如今,是经历了多少的困难,他作为过来人也是深知这其中的辛苦,所以对于员工那是一个体贴,经常会给出很多很好的福利,当初的年会也是羡慕至极,这不第1个国产骄傲!创业3年世界第6,被印度人称为人民的真正选择手机界的一匹大黑马,是印度人口中人民真正选择2018年在5月,有一款中国品牌手机,在印度电商平台,5分钟内销量就超过20万台,创下了印度电商平台Flipkart的首销纪录。两个月后共享单车,被资本玩坏的初心盲目跟风,共享单车造成的浪费谁来买单共享单车最开始火起来的是ofo小黄车,这是国内首家以平台共享方式运营校园自行车业务的互联网公司。是的,最开始的业务只是校园自行车业务。我刚步入大手机出货量大跌,厂商心急如焚,创新不够还是消费者没钱?是什么原因导致手机越来越难卖呢?是消费者手中没钱,还是产品创新不够,抑或是其他原因?最近,市场研究机构赛诺公布了今年2月份国内手机出货量数据,可用惨淡来形容,最高同比跌幅超过45。四维图新(002405。SZ)与霍尼韦尔签署战略合作框架协议格隆汇4月5日丨四维图新(002405。SZ)公布,近日,北京四维图新科技股份有限公司与霍尼韦尔传感控制(中国)有限公司(简称霍尼韦尔)签署战略合作框架协议,双方将在汽车电子芯片自广发电新禾望电气深耕风光储电能变换,领航新能源趋势公司脱胎于艾默生创业团队,领航大功率电力电子技术。公司专注于电能变换领域,是国内领先的新能源电力电子及电气传动设备供应商。公司多名高管曾有艾默生华为电气等任职经历,具备多年行业经验中国联通扣费你们也是这样嘛?今天是4月5日,我刚才打开手机发现话费少了,半小时前,还剩下57元,现在也就是下午3点18分剩下了55元,突然少了两元,由于疫情在家原因,一直都没有使用数据,所以不Java的非法向前引用非法向前引用的例子那么为什么类似于i1234这样的代码可以呢?这是因为Java对其中的某些情况做了特许,其中有一条就是通过简单名称引用的变量可以出现在左值位置,但不能出现在右值的位