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 相关文章推荐
用PHP制作静态网站的模板框架(一)
Oct 09 PHP
PHP教程 预定义变量
Oct 23 PHP
PHP获取一段文本显示点阵宽度和高度的方法
Mar 12 PHP
PHP扩展程序实现守护进程
Apr 16 PHP
php中删除、清空session的方式总结
Oct 09 PHP
PHP实现上传图片到 zimg 服务器
Oct 19 PHP
详解PHP中foreach的用法和实例
Oct 25 PHP
PHP多维数组元素操作类的方法
Nov 14 PHP
PHP面向对象程序设计组合模式与装饰模式详解
Dec 02 PHP
ThinkPHP Where 条件中常用表达式示例(详解)
Mar 31 PHP
详解如何在云服务器上部署Laravel
Jun 30 PHP
使用PHP连接数据库_实现用户数据的增删改查的整体操作示例
Sep 01 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/01 无线电
php项目打包方法
2008/02/18 PHP
详谈phpAdmin修改密码后拒绝访问的问题
2017/04/03 PHP
PHP curl 或 file_get_contents 获取需要授权页面的方法
2017/05/05 PHP
jQuery 对象中的类数组操作
2009/04/27 Javascript
JQuery 小练习(实例代码)
2009/08/07 Javascript
Javacript实现颜色梯度变化和渐变的效果代码
2013/05/31 Javascript
JS 弹出层 定位至屏幕居中示例
2014/05/21 Javascript
jQuery实现滑动页面固定顶部显示(可根据显示位置消失与替换)
2015/10/28 Javascript
jQuery如何解决IE输入框不能输入的问题
2016/10/08 Javascript
JS实现禁止鼠标右键的功能
2016/10/15 Javascript
AngularJS中使用three.js的实例详解
2017/07/21 Javascript
ECMAScript6变量的解构赋值实例详解
2017/09/19 Javascript
Angular2管道Pipe及自定义管道格式数据用法实例分析
2017/11/29 Javascript
Vue中的基础过渡动画及实现原理解析
2018/12/04 Javascript
AngularJS实现的鼠标拖动画矩形框示例【可兼容IE8】
2019/05/17 Javascript
[44:30]完美世界DOTA2联赛PWL S2 GXR vs Magma 第一场 11.25
2020/11/26 DOTA
Python实现获取操作系统版本信息方法
2015/04/08 Python
python url 参数修改方法
2018/12/26 Python
Python基于滑动平均思想实现缺失数据填充的方法
2019/02/21 Python
Python第三方库face_recognition在windows上的安装过程
2019/05/03 Python
numpy.transpose()实现数组的转置例子
2019/12/02 Python
pytorch 计算ConvTranspose1d输出特征大小方式
2020/06/23 Python
使用css3制作动感导航条示例
2014/01/26 HTML / CSS
CSS3实现多背景展示效果通过CSS3定位多张背景
2014/08/10 HTML / CSS
小学生演讲稿
2014/01/12 职场文书
告诉你怎样写创业计划书
2014/01/27 职场文书
女子职高个人自荐书
2014/02/01 职场文书
超市中秋节促销方案
2014/03/21 职场文书
初三学习计划书范文
2014/04/30 职场文书
2014年电教工作总结
2014/12/19 职场文书
2015年安全员工作总结范文
2015/04/22 职场文书
2015年小学二年级班主任工作总结
2015/05/21 职场文书
企业宣传语大全
2015/07/13 职场文书
药房管理制度范本
2015/08/06 职场文书
私人贷款担保书该怎么写呢?
2019/07/02 职场文书