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

源码网商城

php树型类实例

  • 时间:2022-02-04 23:20 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:php树型类实例
本文实例讲述了php树型类。分享给大家供大家参考。具体分析如下: 该实例原理简单,学过数据结构的一看就明白是什么道理了,不过今天在使用时数据中出现了子节点id(71)小于父节点id(104).导致部分子节点没被存储入数组,修改了一下,实例代码如下:
[u]复制代码[/u] 代码如下:
<?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程序设计有所帮助。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部