php树型类实例
发布时间:2020-12-13 02:14:50 所属栏目:PHP教程 来源:网络整理
导读:《php树型类实例》要点: 本文介绍了php树型类实例,希望对您有用。如果有疑问,可以联系我们。 PHP实战 本篇章节讲解php树型类.供大家参考研究.具体分析如下: PHP实战 该实例原理简单,学过数据结构的一看就明白是什么道理了,不过今天在使用时数据
《php树型类实例》要点: 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程序设计有所赞助. 欢迎参与《php树型类实例》讨论,分享您的想法,编程之家 52php.cn为您提供专业教程。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |