多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內(nèi)最全I(xiàn)T社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁 > php開源 > php教程 > php無限分類可支持輸出樹狀圖實(shí)現(xiàn)代碼

php無限分類可支持輸出樹狀圖實(shí)現(xiàn)代碼

來源:程序員人生   發(fā)布時間:2013-12-04 12:12:41 閱讀次數(shù):3692次

這是一段可支持輸出樹狀圖的php無限分類實(shí)現(xiàn)代碼,轉(zhuǎn)自其它網(wǎng)站有需要了解的朋友可參考一下哦,數(shù)據(jù)庫結(jié)構(gòu)我們只要id,parentid,name這三個字段就可以了,大家可自行創(chuàng)建。

數(shù)據(jù)庫結(jié)構(gòu)我們只要,無平臺限制,只需要告知id,parentid,name 即可,下面是php代碼,需要php環(huán)境支持,代碼如下:

  1. <?php 
  2. /** 
  3. * 通用的樹型類,可以生成任何樹型結(jié)構(gòu) 
  4. */ 
  5. class tree 
  6.  /** 
  7.  * 生成樹型結(jié)構(gòu)所需要的2維數(shù)組 
  8.  * @var array 
  9.  */ 
  10.  var $arr = array(); 
  11.  /** 
  12.  * 生成樹型結(jié)構(gòu)所需修飾符號,可以換成圖片 
  13.  * @var array 
  14.  */ 
  15.  var $icon = array('│','├','└'); 
  16.  /** 
  17.  * @access private 
  18.  */ 
  19.  var $ret = ''
  20.  /** 
  21.  * 構(gòu)造函數(shù),初始化類 
  22.  * @param array 2維數(shù)組,例如: 
  23.  * array( 
  24.  *      1 => array('id'=>'1','parentid'=>0,'name'=>'一級欄目一'), 
  25.  *      2 => array('id'=>'2','parentid'=>0,'name'=>'一級欄目二'), 
  26.  *      3 => array('id'=>'3','parentid'=>1,'name'=>'二級欄目一'), 
  27.  *      4 => array('id'=>'4','parentid'=>1,'name'=>'二級欄目二'), 
  28.  *      5 => array('id'=>'5','parentid'=>2,'name'=>'二級欄目三'), 
  29.  *      6 => array('id'=>'6','parentid'=>3,'name'=>'三級欄目一'), 
  30.  *      7 => array('id'=>'7','parentid'=>3,'name'=>'三級欄目二') 
  31.  *      ) 
  32.  */ 
  33.  function tree($arr=array()) 
  34.  { 
  35.        $this->arr = $arr
  36.     $this->ret = ''
  37.     return is_array($arr); 
  38.  } 
  39.     /** 
  40.  * 得到父級數(shù)組 
  41.  * @param int 
  42.  * @return array 
  43.  */ 
  44.  function get_parent($myid
  45.  { 
  46.   $newarr = array(); 
  47.   if(!isset($this->arr[$myid])) return false; 
  48.   $pid = $this->arr[$myid]['parentid']; 
  49.   $pid = $this->arr[$pid]['parentid']; 
  50.   if(is_array($this->arr)) 
  51.   { 
  52.    foreach($this->arr as $id => $a
  53.    { 
  54.     if($a['parentid'] == $pid$newarr[$id] = $a
  55.    } 
  56.   } 
  57.   return $newarr
  58.  } 
  59.     /** 
  60.  * 得到子級數(shù)組 
  61.  * @param int 
  62.  * @return array 
  63.  */ 
  64.  function get_child($myid
  65.  { 
  66.   $a = $newarr = array(); 
  67.   if(is_array($this->arr)) 
  68.   { 
  69.    foreach($this->arr as $id => $a
  70.    { 
  71.     if($a['parentid'] == $myid$newarr[$id] = $a
  72.    } 
  73.   } 
  74.   return $newarr ? $newarr : false; 
  75.  } 
  76.     /** 
  77.  * 得到當(dāng)前位置數(shù)組 
  78.  * @param int 
  79.  * @return array 
  80.  */ 
  81.  function get_pos($myid,&$newarr
  82.  { 
  83.   $a = array(); 
  84.   if(!isset($this->arr[$myid])) return false; 
  85.         $newarr[] = $this->arr[$myid]; 
  86.   $pid = $this->arr[$myid]['parentid']; 
  87.   if(isset($this->arr[$pid])) 
  88.   { 
  89.       $this->get_pos($pid,$newarr); 
  90.   } 
  91.   if(is_array($newarr)) 
  92.   { 
  93.    krsort($newarr); 
  94.    foreach($newarr as $v
  95.    { 
  96.     $a[$v['id']] = $v
  97.    } 
  98.   } 
  99.   return $a
  100.  } 
  101.  
  102.  /** 
  103.   * ------------------------------------- 
  104.   *  得到樹型結(jié)構(gòu) 
  105.   * ------------------------------------- 
  106.   * @author  Midnight(楊云洲),  yangyunzhou@foxmail.com 
  107.   * @param $myid 表示獲得這個ID下的所有子級 
  108.   * @param $str 生成樹形結(jié)構(gòu)基本代碼, 例如: "<option value=$id $select>$spacer$name</option>" 
  109.   * @param $sid 被選中的ID, 比如在做樹形下拉框的時候需要用到 
  110.   * @param $adds 
  111.   * @param $str_group 
  112.   * @return unknown_type 
  113.   */ 
  114.  function get_tree($myid$str$sid = 0, $adds = ''$str_group = ''
  115.  { 
  116.   $number=1; 
  117.   $child = $this->get_child($myid); 
  118.   if(is_array($child)) 
  119.   { 
  120.       $total = sqlserver/42852.htm target=_blank >count($child); 
  121.    foreach($child as $id=>$a
  122.    { 
  123.     $j=$k=''
  124.     if($number==$total
  125.     { 
  126.      $j .= $this->icon[2]; 
  127.     } 
  128.     else 
  129.     { 
  130.      $j .= $this->icon[1]; 
  131.      $k = $adds ? $this->icon[0] : ''
  132.     } 
  133.     $spacer = $adds ? $adds.$j : ''
  134.     $selected = $id==$sid ? 'selected' : ''
  135.     @extract($a); 
  136.     $parentid == 0 && $str_group ? eval("$nstr = "$str_group";") : eval("$nstr = "$str";"); 
  137.     $this->ret .= $nstr
  138.     $this->get_tree($id$str$sid$adds.$k.'&nbsp;',$str_group); 
  139.     $number++; 
  140.    } 
  141.   } 
  142.   return $this->ret; 
  143.  } 
  144.     /** 
  145.  * 同上一方法類似,但允許多選 
  146.  */ 
  147.  function get_tree_multi($myid$str$sid = 0, $adds = ''
  148.  { 
  149.   $number=1; 
  150.   $child = $this->get_child($myid); 
  151.   if(is_array($child)) 
  152.   { 
  153.       $total = count($child); 
  154.    foreach($child as $id=>$a
  155.    { 
  156.     $j=$k=''
  157.     if($number==$total
  158.     { 
  159.      $j .= $this->icon[2]; 
  160.     } 
  161.     else 
  162.     { 
  163.      $j .= $this->icon[1]; 
  164.      $k = $adds ? $this->icon[0] : ''
  165.     } 
  166.     $spacer = $adds ? $adds.$j : ''
  167.     $selected = $this->have($sid,$id) ? 'selected' : ''
  168.     //echo $sid.'=>'.$id.' : '.$selected.' . <br/>'; 
  169.     @extract($a); 
  170.     eval("$nstr = "$str";"); 
  171.     $this->ret .= $nstr
  172.     $this->get_tree_multi($id$str$sid$adds.$k.'&nbsp;'); 
  173.     $number++; 
  174.    } 
  175.   } 
  176.   return $this->ret; 
  177.  } 
  178.  function have($list,$item){ 
  179.   return(strpos(',,'.$list.',',','.$item.',')); 
  180.  } 
  181. ?> 

效果就是

aa
  bbb
  ccc 這樣哦,可實(shí)現(xiàn)無限級分類.
生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 久久国产一区二区 | 国产福利不卡视频在免费播放 | 午夜私人影院在线观看 视频 | 欧美在线观看视频一区 | 亚洲国产日韩综合久久精品 | 亚洲欧美日韩另类小说 | 狠狠躁夜夜躁人人躁婷婷视频 | 午夜视频在线观看网站 | 中文字幕一二三区乱码老 | 91精品乱码一区二区三区 | 69免费视频大片 | 精品成人一区二区 | 国产精品二区三区免费播放心 | 性做久久久久久久久老女人 | 香蕉伊 | 久久精品综合 | 日韩欧美色综合 | 国产亚洲精品线观看77 | 国产精品久久久久久搜索 | 中文字幕2021 | 日本中文字幕网 | 国产亚洲精品美女一区二区 | 国产欧美日韩亚洲 | 在线网| 亚洲精品福利在线 | 一本之道无吗一二三区 | 色尼玛亚洲综合 | 视频一区 国产 | 女人一级毛片免费观看 | 日韩一区二区三区四区 | 国产福利乳摇在线播放 | 1024在线视频国产在线播放 | freesexvideos性21 | 国产精品亚洲精品日韩己满十八小 | 中文字幕在线永久在线视频2020 | 久久丝袜精品综合网站 | jizz中国人 | 国产成人三级经典中文 | 色妞在线影院色 | 久爱免费观看在线精品 | 欧美日韩亚洲国内综合网香蕉 |