最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP無(wú)限分類的類

 更新時(shí)間:2007年01月02日 00:00:00   作者:  
這段時(shí)間在寫一個(gè)部門權(quán)限系統(tǒng),需要用到無(wú)限分類技術(shù),找了很多關(guān)于分類的代碼.逐個(gè)收藏起來(lái)

復(fù)制代碼 代碼如下:

<?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代碼:

復(fù)制代碼 代碼如下:

<?php
//new Tree(根目錄的名字);
//根目錄的ID自動(dòng)分配為0
$Tree = new Tree('根目錄');

//setNode(目錄ID,上級(jí)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);
//取得指定目錄下級(jí)目錄.如果沒(méi)有指定目錄就由根目錄開(kāi)始
$category = $Tree->getChilds();

//遍歷輸出
foreach ($category as $key=>$id)
{
    echo $Tree->getLayer($id, '|-').$Tree->getValue($id)."<br>\n";
}

PHP無(wú)限分類-PHP100代碼

復(fù)制代碼 代碼如下:

<?php
//無(wú)限分類,從子類找所有父類
//$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頂級(jí)分類從什么開(kāi)始,$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);
     }
   }

相關(guān)文章

  • 功能齊全的PHP發(fā)送郵件類代碼附詳細(xì)說(shuō)明

    功能齊全的PHP發(fā)送郵件類代碼附詳細(xì)說(shuō)明

    PHP--下面這個(gè)類的功能則很強(qiáng)大,不但能發(fā)html格式的郵件,還可以發(fā)附件
    2008-07-07
  • 詳解php內(nèi)存管理機(jī)制與垃圾回收機(jī)制

    詳解php內(nèi)存管理機(jī)制與垃圾回收機(jī)制

    在PHP中,沒(méi)有任何變量指向這個(gè)對(duì)象時(shí),這個(gè)對(duì)象就成為垃圾。PHP會(huì)將其在內(nèi)存中銷毀;這是PHP的GC垃圾處理機(jī)制。PHP的內(nèi)存管理,分為倆部分, 第一部分是PHP自身的內(nèi)存管理,而第二部分是zend_alloc中描寫的關(guān)于PHP自身的內(nèi)存管理。本文將詳細(xì)介紹這兩個(gè)內(nèi)容。
    2021-05-05
  • php實(shí)現(xiàn)的中秋博餅游戲之?dāng)S骰子并輸出結(jié)果功能詳解

    php實(shí)現(xiàn)的中秋博餅游戲之?dāng)S骰子并輸出結(jié)果功能詳解

    這篇文章主要介紹了php實(shí)現(xiàn)的中秋博餅游戲之?dāng)S骰子并輸出結(jié)果功能,結(jié)合實(shí)例形式分析了php擲骰子的原理及游戲結(jié)果的圖形輸出相關(guān)操作技巧,需要的朋友可以參考下
    2017-11-11
  • iis6手工創(chuàng)建網(wǎng)站后無(wú)法運(yùn)行php腳本的解決方法

    iis6手工創(chuàng)建網(wǎng)站后無(wú)法運(yùn)行php腳本的解決方法

    下面小編就為大家?guī)?lái)一篇iis6手工創(chuàng)建網(wǎng)站后無(wú)法運(yùn)行php腳本的解決方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-06-06
  • 利用Dockerfile文件部署php項(xiàng)目的全過(guò)程

    利用Dockerfile文件部署php項(xiàng)目的全過(guò)程

    環(huán)境部署一直是一個(gè)很大的問(wèn)題,無(wú)論是開(kāi)發(fā)環(huán)境還是生產(chǎn)環(huán)境,但是Docker將開(kāi)發(fā)環(huán)境和生產(chǎn)環(huán)境以輕量級(jí)方式打包,提供了一致的環(huán)境,下面這篇文章主要給大家介紹了關(guān)于利用Dockerfile文件部署php項(xiàng)目的相關(guān)資料,需要的朋友可以參考下
    2022-07-07
  • 利用curl 多線程 模擬 并發(fā)的詳解

    利用curl 多線程 模擬 并發(fā)的詳解

    本篇文章是對(duì)利用curl多線程模擬并發(fā)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • PHP更新購(gòu)物車數(shù)量(表單部分/PHP處理部分)

    PHP更新購(gòu)物車數(shù)量(表單部分/PHP處理部分)

    購(gòu)物車的數(shù)量是根據(jù)用戶的選擇商品加入而不斷增加的,下面是具體的實(shí)現(xiàn)代碼(客服端部分/PHP服務(wù)器端處理),有類似需求的朋友可以參考下
    2013-05-05
  • PHP 二維array轉(zhuǎn)換json的實(shí)例講解

    PHP 二維array轉(zhuǎn)換json的實(shí)例講解

    今天小編就為大家分享一篇PHP 二維array轉(zhuǎn)換json的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-08-08
  • PHP Undefined index報(bào)錯(cuò)的修復(fù)方法

    PHP Undefined index報(bào)錯(cuò)的修復(fù)方法

    用$_GET["xx"]這種形式取得數(shù)據(jù)時(shí),如果之前不加判斷,$_GET["xx"]不存在時(shí)會(huì)出現(xiàn)這樣的警告:PHP Notice: undefined index xxx。
    2011-07-07
  • PHP請(qǐng)求微信接口獲取用戶電話號(hào)功能示例

    PHP請(qǐng)求微信接口獲取用戶電話號(hào)功能示例

    這篇文章主要介紹了PHP請(qǐng)求微信接口獲取用戶電話號(hào)功能,簡(jiǎn)單講述微信請(qǐng)求接口獲取用戶信息的相關(guān)功能,結(jié)合具體實(shí)例形式分析了php調(diào)用微信請(qǐng)求接口獲取用戶電話號(hào)碼的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2023-07-07

最新評(píng)論

开远市| 龙陵县| 黎平县| 大丰市| 沂南县| 铜川市| 巢湖市| 凤城市| 吉安市| 舞钢市| 肇庆市| 托克逊县| 安多县| 韩城市| 都江堰市| 宜兰市| 剑川县| 丽江市| 阿克| 盐池县| 武胜县| 蒙山县| 石台县| 阜康市| 元朗区| 张家界市| 德安县| 阳城县| 班戈县| 丹凤县| 乌鲁木齐县| 潜山县| 萨迦县| 三穗县| 同仁县| 涿鹿县| 阳新县| 平南县| 壤塘县| 左贡县| 平度市|