源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

PHP无限分类的类

  • 时间:2021-11-24 11:51 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:PHP无限分类的类
[u]复制代码[/u] 代码如下:
<?php /**  * @author        YangHuan  * @datetime      * @version        1.0.0  */ /**  * Short description.  *  * Detail description  * @author         * @version      1.0  * @copyright      * @access       public  */ class Tree {     /**      * Description      * @var             * @since     1.0      * @access    private      */     var $data    = array();     /**      * Description      * @var             * @since     1.0      * @access    private      */     var $child    = array(-1=>array());     /**      * Description      * @var             * @since     1.0      * @access    private      */     var $layer    = array(-1=>-1);     /**      * Description      * @var             * @since     1.0      * @access    private      */     var $parent    = array();     /**      * Short description.       *      * Detail description      * @param      none      * @global     none      * @since      1.0      * @access     private      * @return     void      * @update     date time     */     function Tree ($value)     {         $this->setNode(0, -1, $value);     } // end func     /**      * Short description.       *      * Detail description      * @param      none      * @global     none      * @since      1.0      * @access     private      * @return     void      * @update     date time     */     function setNode ($id, $parent, $value)     {         $parent = $parent?$parent:0;         $this->data[$id]            = $value;         $this->child[$id]            = array();         $this->child[$parent][]        = $id;         $this->parent[$id]            = $parent;         if (!isset($this->layer[$parent]))         {             $this->layer[$id] = 0;         }         else         {             $this->layer[$id] = $this->layer[$parent] + 1;         }     } // end func     /**      * Short description.       *      * Detail description      * @param      none      * @global     none       * @since      1.0      * @access     private      * @return     void      * @update     date time     */     function getList (&$tree, $root= 0)     {         foreach ($this->child[$root] as $key=>$id)         {             $tree[] = $id;             if ($this->child[$id]) $this->getList($tree, $id);         }     } // end func     /**      * Short description.       *      * Detail description      * @param      none      * @global     none      * @since      1.0      * @access     private      * @return     void      * @update     date time     */     function getValue ($id)     {         return $this->data[$id];     } // end func     /**      * Short description.       *      * Detail description      * @param      none      * @global     none      * @since      1.0      * @access     private      * @return     void      * @update     date time     */     function getLayer ($id, $space = false)     {         return $space?str_repeat($space, $this->layer[$id]):$this->layer[$id];     } // end func     /**      * Short description.       *      * Detail description      * @param      none      * @global     none      * @since      1.0      * @access     private      * @return     void      * @update     date time     */     function getParent ($id)     {         return $this->parent[$id];     } // end func     /**      * Short description.       *      * Detail description      * @param      none      * @global     none      * @since      1.0      * @access     private      * @return     void      * @update     date time     */     function getParents ($id)     {         while ($this->parent[$id] != -1)         {             $id = $parent[$this->layer[$id]] = $this->parent[$id];         }         ksort($parent);         reset($parent);         return $parent;     } // end func     /**      * Short description.       *      * Detail description      * @param      none      * @global     none      * @since      1.0      * @access     private      * @return     void      * @update     date time     */     function getChild ($id)     {         return $this->child[$id];     } // end func          /**      * Short description.       *      * Detail description      * @param      none      * @global     none      * @since      1.0      * @access     private      * @return     void      * @update     date time     */     function getChilds ($id = 0)     {         $child = array($id);         $this->getList($child, $id);         return $child;     } // end func } // end class ?>
使用方法 PHP代码:
[u]复制代码[/u] 代码如下:
<?php //new Tree(根目录的名字); //根目录的ID自动分配为0 $Tree = new Tree('根目录'); //setNode(目录ID,上级ID,目录名字); $Tree->setNode(1, 0, '目录1'); $Tree->setNode(2, 0, '目录2'); $Tree->setNode(3, 0, '目录3'); $Tree->setNode(4, 3, '目录3.1'); $Tree->setNode(5, 3, '目录3.2'); $Tree->setNode(6, 3, '目录3.3'); $Tree->setNode(7, 2, '目录2.1'); $Tree->setNode(8, 2, '目录2.2'); $Tree->setNode(9, 2, '目录2.3'); $Tree->setNode(10, 6, '目录3.3.1'); $Tree->setNode(11, 6, '目录3.3.2'); $Tree->setNode(12, 6, '目录3.3.3'); //getChilds(指定目录ID); //取得指定目录下级目录.如果没有指定目录就由根目录开始 $category = $Tree->getChilds(); //遍历输出 foreach ($category as $key=>$id) {     echo $Tree->getLayer($id, '|-').$Tree->getValue($id)."<br>\n"; }
[b]PHP无限分类-PHP100代码[/b]
[u]复制代码[/u] 代码如下:
<?php //无限分类,从子类找所有父类 //$id 子类ID  function php100_xd($id){    $sql="select * from fl where id='$id'";    $q=mysql_query($sql);    $rs=mysql_fetch_array($q);    $rs['fid']==0 ? "" : fl($rs['fid']);    echo $rs['name']."-";    } //读取所有父类下面的子类 //$f顶级分类从什么开始,$s样式  function php100_dx($f=0,$s=""){    $sql="select * from fl where fid=$f";    $q=mysql_query($sql);    $s=$s."-";    while($rs=mysql_fetch_array($q)){      echo "<br>$s".$rs['name'];   flt($rs['id'],$s);      }    }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部