php树型类实例


Posted in PHP onDecember 05, 2014

本文实例讲述了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 相关文章推荐
一个捕获函数输出的函数
Feb 14 PHP
php获取mysql版本的几种方法小结
Mar 25 PHP
php与XML、XSLT、Mysql的结合运用实现代码
Nov 19 PHP
php对包含html标签的字符串进行截取的函数分享
Jun 19 PHP
ThinkPHP实现批量删除数据的代码实例
Jul 02 PHP
在Ubuntu 14.04上部署 PHP 环境及 WordPress
Sep 02 PHP
php中session与cookie的比较
Jan 27 PHP
微信支付开发告警通知实例
Jul 12 PHP
PHP面向对象程序设计OOP继承用法入门示例
Dec 27 PHP
PHP中include()与require()的区别说明
Feb 14 PHP
mac系统下安装多个php并自由切换的方法详解
Apr 21 PHP
Laravel如何实现自动加载类
Oct 14 PHP
Yii框架form表单用法实例
Dec 04 #PHP
Yii不依赖Model的表单生成器用法实例
Dec 04 #PHP
Yii分页用法实例详解
Dec 04 #PHP
Yii配置文件用法详解
Dec 04 #PHP
yii实现图片上传及缩略图生成的方法
Dec 04 #PHP
Dwz与thinkphp整合下的数据导出到Excel实例
Dec 04 #PHP
yii的CURD操作实例详解
Dec 04 #PHP
You might like
php 无限极分类
2008/03/27 PHP
php执行sql语句的写法
2009/03/10 PHP
php学习之变量的使用
2011/05/29 PHP
php中将指针移动到数据集初始位置的实现代码[mysql_data_seek]
2012/11/01 PHP
PHP生成图片缩略图类示例
2017/01/12 PHP
javascript编程起步(第一课)
2007/01/10 Javascript
jquery学习笔记 用jquery实现无刷新登录
2011/08/08 Javascript
jquery实现动态操作select选中
2015/02/11 Javascript
JavaScript取得WEB安全颜色列表的方法
2015/07/14 Javascript
jQuery实现分章节锚点“回到顶部”动画特效代码
2015/10/23 Javascript
Jquery实现简单的轮播效果(代码管用)
2016/03/14 Javascript
原生JS实现幻灯片
2017/02/22 Javascript
jQuery时间验证和转换为标准格式的时间格式
2017/03/06 Javascript
vue增删改查的简单操作
2017/07/15 Javascript
JS实现利用两个队列表示一个栈的方法
2017/12/13 Javascript
JS实现的将html转为pdf功能【基于浏览器端插件jsPDF】
2018/02/06 Javascript
教你如何编写Vue.js的单元测试的方法
2018/10/17 Javascript
基于Nuxt.js项目的服务端性能优化与错误检测(容错处理)
2019/10/23 Javascript
python OpenCV学习笔记直方图反向投影的实现
2018/02/07 Python
对pandas处理json数据的方法详解
2019/02/08 Python
python 字段拆分详解
2019/12/17 Python
浅谈python之自动化运维(Paramiko)
2020/01/31 Python
html5 CSS过度-webkit-transition使用介绍
2013/07/02 HTML / CSS
Html5应用程序缓存(Cache manifest)
2018/06/04 HTML / CSS
请编写一个 C 函数,该函数在给定的内存区域搜索给定的字符,并返回该字符所在位置索引值
2014/09/15 面试题
升职自荐信
2013/11/28 职场文书
大专生的学习自我评价
2013/12/04 职场文书
餐饮加盟计划书
2014/01/10 职场文书
诚实守信道德模范事迹材料
2014/08/15 职场文书
离职证明范本(5篇)
2014/09/19 职场文书
英文升职感谢信
2015/01/23 职场文书
慰问信格式
2015/02/14 职场文书
2015年护士医德医风自我评价
2015/03/03 职场文书
无犯罪记录证明样本
2015/06/16 职场文书
2015年学校医务室工作总结
2015/07/20 职场文书
2019年公司卫生管理制度样本
2019/08/21 职场文书