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新手上路(九)
Oct 09 PHP
用缓存实现静态页面的测试
Dec 06 PHP
PHP中str_replace函数使用小结
Oct 11 PHP
PHP 使用header函数设置HTTP头的示例解析 表头
Jun 17 PHP
md5 16位二进制与32位字符串相互转换示例
Dec 30 PHP
PHP图片等比缩放类SimpleImage使用方法和使用实例分享
Apr 10 PHP
PHP循环输出指定目录下的所有文件和文件夹路径例子(简单实用)
May 10 PHP
PHP+Memcache实现wordpress访问总数统计(非插件)
Jul 04 PHP
php生成zip文件类实例
Apr 07 PHP
浅谈使用PHP开发微信支付的流程
Oct 04 PHP
php利用ZipArchive类操作文件的实例
Jan 21 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
咖啡是不是喝了会上瘾?咖啡是必须品吗!
2021/03/04 新手入门
php中常用编辑器推荐
2007/01/02 PHP
UCenter Home二次开发指南
2009/05/28 PHP
详解PHP错误日志的获取方法
2015/07/20 PHP
CodeIgniter记录错误日志的方法全面总结
2016/05/17 PHP
php reset() 函数指针指向数组中的第一个元素并输出实例代码
2016/11/21 PHP
PHP查询分页的实现代码
2017/06/09 PHP
ext 代码生成器
2009/08/07 Javascript
javascript cookies操作集合
2010/04/12 Javascript
一个简单的jQuery插件制作 学习过程及实例
2010/04/25 Javascript
有关JavaScript的10个怪癖和秘密分享
2011/08/28 Javascript
JS左右无缝滚动(一般方法+面向对象方法)
2012/08/17 Javascript
jQuery实现切换页面过渡动画效果
2015/10/29 Javascript
JS实现复制内容到剪贴板功能
2017/02/05 Javascript
JSON创建键值对(key是中文或者数字)方式详解
2017/08/24 Javascript
vue动态绑定class的几种常用方式小结
2019/05/21 Javascript
p5.js实现简单货车运动动画
2019/10/23 Javascript
jQuery Datatables 动态列+跨列合并实现代码
2020/01/30 jQuery
Python 匹配任意字符(包括换行符)的正则表达式写法
2009/10/29 Python
Python迭代器和生成器介绍
2015/03/06 Python
python 获取url中的参数列表实例
2018/12/18 Python
python实现播放音频和录音功能示例代码
2018/12/30 Python
详解Python3中ceil()函数用法
2019/02/19 Python
在keras中获取某一层上的feature map实例
2020/01/24 Python
解决Django no such table: django_session的问题
2020/04/07 Python
matplotlib对象拾取事件处理的实现
2021/01/14 Python
虚拟环境及venv和virtualenv的区别说明
2021/02/05 Python
荷兰天然和有机产品网上商城:BigGreenSmile.nl
2020/07/26 全球购物
聊城大学毕业生自荐书
2014/02/01 职场文书
大学运动会入场词
2014/02/22 职场文书
社区消防工作实施方案
2014/03/21 职场文书
廉洁家庭事迹材料
2014/05/15 职场文书
2014年会计个人工作总结
2014/11/24 职场文书
销售2014年度工作总结
2014/12/08 职场文书
安全检查汇报材料
2014/12/26 职场文书
招商银行收入证明
2015/06/17 职场文书