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 相关文章推荐
数据库相关问题
Oct 09 PHP
PHP has encountered an Access Violation
Jan 15 PHP
php中文本操作的类
Mar 17 PHP
用mysql触发器自动更新memcache的实现代码
Oct 11 PHP
php中strstr、strrchr、substr、stristr四个函数的区别总结
Sep 22 PHP
PHP学习笔记(一):基本语法之标记、空白、和注释
Apr 17 PHP
6个超实用的PHP代码片段
Aug 10 PHP
php代码架构的八点注意事项
Jan 25 PHP
CodeIgniter记录错误日志的方法全面总结
May 17 PHP
Ajax PHP JavaScript MySQL实现简易无刷新在线聊天室
Aug 17 PHP
yii2中关于加密解密的那些事儿
Jun 12 PHP
Laravel重定向,a链接跳转,控制器跳转示例
Oct 22 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 SQL防注入代码集合
2008/04/25 PHP
php中判断数组相等的方法以及数组运算符介绍
2015/03/30 PHP
&amp;lt;script defer&amp;gt; defer 是什么意思
2009/05/10 Javascript
jQuery关于导航条背景切换效果实现示例
2013/09/04 Javascript
多种JQuery循环滚动文字图片效果代码
2020/06/23 Javascript
利用jquery制作滚动到指定位置触发动画
2016/03/26 Javascript
jQuery fadeOut 异步实例代码详解
2016/08/18 Javascript
如何利用JQuery实现从底部回到顶部的功能
2016/12/27 Javascript
从零开始学习Node.js系列教程之设置HTTP头的方法示例
2017/04/13 Javascript
通过封装scroll.js 获取滚动条的值
2018/07/13 Javascript
微信小程序实现工作时间段选择
2019/02/15 Javascript
Vue运用transition实现过渡动画
2019/05/06 Javascript
vue操作dom元素的3种方法示例
2020/09/20 Javascript
解决Can't find variable: SockJS vue项目的问题
2020/09/22 Javascript
PyChar学习教程之自定义文件与代码模板详解
2017/07/17 Python
详细解读tornado协程(coroutine)原理
2018/01/15 Python
详解Django中六个常用的自定义装饰器
2018/07/04 Python
基于多进程中APScheduler重复运行的解决方法
2019/07/22 Python
python issubclass 和 isinstance函数
2019/07/25 Python
基于 Django 的手机管理系统实现过程详解
2019/08/16 Python
flask 使用 flask_apscheduler 做定时循环任务的实现
2019/12/10 Python
PyTorch 随机数生成占用 CPU 过高的解决方法
2020/01/13 Python
Python Scrapy框架第一个入门程序示例
2020/02/05 Python
scrapy数据存储在mysql数据库的两种方式(同步和异步)
2020/02/18 Python
Python爬虫JSON及JSONPath运行原理详解
2020/06/04 Python
亚洲航空公司官方网站:AirAsia
2019/11/25 全球购物
员工自我鉴定范文
2013/10/06 职场文书
宠物店的创业计划书范文
2014/01/11 职场文书
京剧自荐信
2014/01/26 职场文书
模具设计与制造专业推荐信
2014/02/16 职场文书
大学生活动总结怎么写
2014/04/29 职场文书
国际商贸专业自荐信
2014/06/09 职场文书
商场消防安全责任书
2014/07/29 职场文书
合作经营协议书范本
2014/09/16 职场文书
小学二年级数学教学计划
2015/01/20 职场文书
2016党员干部廉洁自律心得体会
2016/01/13 职场文书