好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

php树型菜单类 - php类库

php树型菜单类

原理简单,学过数据结构的一看就明白是什么道理了,不过今天在使用时数据中出现了子节点id(71)小于父节点id(104).导致部分子节点没被存储入数组,修改了一下,实例代码如下:

<?php  class  tree  {       var   $data  =  array ();       var   $child  =  array (-1=> array ());       var   $layer  =  array (-1=>-1);       var   $parent  =  array ();       var   $num  =  array ();          function  setnode( $id ,  $parent ,  $value , $num =0)      {           $parent  =  $parent  ?  $parent  : 0;              $this ->data[ $id ]  =  $value ;           $this ->num[ $id ]      =  $num ;           if  (!isset( $this ->child[ $id ]))  $this ->child[ $id ] =  array ();           $this ->child[ $parent ][] =  $id ;           $this ->parent[ $id ]  =  $parent ;              if  (!isset( $this ->layer[ $parent ]) &&  $parent  == 0)          {              $this ->layer[ $id ] = 0;          }           else           {               $this ->layer[ $id ] =  $this ->layer[ $parent ] + 1;          }      }             function  getlist(& $tree ,  $root = 0)      {           foreach  ( $this ->child[ $root ]  as   $key => $id )          {               $tree [] =  $id ;               if ( $this ->child[ $id ])  $this ->getlist( $tree ,  $id );          }      }          function  getvalue( $id )      {     if ( $this ->layer[ $id ]==0)    {      return   $this ->data[ $id ];    }     else     {      return   $leftmar . $this ->data[ $id ];    }      }          function  getnum( $id )      {     return   $this ->num[ $id ];      }          function  getbitvalue( $id )      {     return   $this ->data[ $id ];      }          function  getlayer( $id ,  $space  = false)      {           return   $space  ?  str_repeat ( $space ,  $this ->layer[ $id ]) :  $this ->layer[ $id ];      }          function  getparent( $id )      {           return   $this ->parent[ $id ];      }          function  getparents( $id )      {           while  ( $this ->parent[ $id ] != -1)          {               $id  =  $parent [ $this ->layer[ $id ]] =  $this ->parent[ $id ];          }             ksort( $parent );          reset( $parent );              return   $parent ;      }          function  getchild( $id )      {           return   $this ->child[ $id ];      }          function  getchilds( $id  = 0)      {           $child  =  array ( $id );           $this ->getlist( $child ,  $id );              return   $child ;      }          function  printdata()      {           return   $this ->layer;      }  }  ?> 

查看更多关于php树型菜单类 - php类库的详细内容...

  阅读:46次