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 相关文章推荐
一键删除顽固的空文件夹 软件下载
Jan 26 PHP
PHP 文件上传功能实现代码
Jun 24 PHP
Session的工作机制详解和安全性问题(PHP实例讲解)
Apr 10 PHP
thinkphp3.2.2前后台公用类架构问题分析
Nov 25 PHP
php 伪造ip以及url来路信息方法汇总
Nov 25 PHP
PHP实现中文圆形印章特效
Jun 19 PHP
讲解WordPress开发中一些常用的debug技巧
Dec 18 PHP
PHP统计目录中文件以及目录中目录大小的方法
Jan 09 PHP
PHP中的密码加密的解决方案总结
Oct 26 PHP
PHPExcel在linux环境下导出报500错误的解决方法
Jan 26 PHP
php实现将二维关联数组转换成字符串的方法详解
Jul 31 PHP
自写的利用PDO对mysql数据库增删改查操作类
Feb 19 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
phpmyadmin的#1251问题
2006/11/25 PHP
php中mysql模块部分功能的简单封装
2011/09/30 PHP
PHP提示Notice: Undefined variable的解决办法
2012/11/24 PHP
Linux下PHP连接Oracle数据库
2014/08/20 PHP
图文介绍PHP添加Redis模块及连接
2015/07/28 PHP
详解PHP的Yii框架中自带的前端资源包的使用
2016/03/31 PHP
php版微信开发Token验证失败或请求URL超时问题的解决方法
2016/09/23 PHP
PHP有序表查找之二分查找(折半查找)算法示例
2018/02/09 PHP
通过身份证号得到出生日期和性别的js代码
2009/11/23 Javascript
jQuery UI AutoComplete 使用说明
2011/06/20 Javascript
使用JavaScript修改浏览器URL地址栏的实现代码
2013/10/21 Javascript
window.open 以post方式传递参数示例代码
2014/02/27 Javascript
extjs 分页使用jsp传递数据示例
2014/07/29 Javascript
基于jQuery创建鼠标悬停效果的方法
2015/03/07 Javascript
JS添加删除DIV的简单实例
2016/07/08 Javascript
angularjs点击图片放大实现上传图片预览
2017/02/24 Javascript
vue.js开发环境安装教程
2017/03/17 Javascript
JavaScript实现星星等级评价功能
2017/03/22 Javascript
jQuery实现鼠标响应式透明度渐变动画效果示例
2018/02/13 jQuery
微信小程序如何调用图片接口API并居中显示
2019/06/29 Javascript
Vue打包后访问静态资源路径问题
2019/11/08 Javascript
python合并文本文件示例
2014/02/07 Python
利用python画一颗心的方法示例
2017/01/31 Python
django admin添加数据自动记录user到表中的实现方法
2018/01/05 Python
python实现微信自动回复机器人功能
2019/07/11 Python
利用pytorch实现对CIFAR-10数据集的分类
2020/01/14 Python
Python类和实例的属性机制原理详解
2020/03/21 Python
加拿大高尔夫超市:Golf Town
2018/01/12 全球购物
医药代表个人求职信范本
2013/12/19 职场文书
校长就职演讲稿
2014/01/06 职场文书
九年级政治教学反思
2014/02/06 职场文书
党员对照检查材料思想汇报
2014/09/16 职场文书
小学英语教学随笔
2015/08/14 职场文书
《清澈的湖水》教学反思
2016/02/17 职场文书
Python利用zhdate模块实现农历日期处理
2022/03/31 Python
Python实现科学占卜 让视频自动打码
2022/04/09 Python