• 技术文章 >后端开发 >php教程

    php树型类实例_php技巧

    2016-05-16 20:29:03原创401
    本文实例讲述了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程序设计有所帮助。

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:php 树型
    上一篇:php实现使用正则将文本中的网址转换成链接标签_php技巧 下一篇:Yii框架中memcache用法实例_php实例
    PHP编程就业班

    相关文章推荐

    • 深入了解怎么优化php+php-fom+nginx配置参数• 三、开发环境• PHP札记• Nginx+CI出现404异常• ajax编码有关问题,大侠帮忙!

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网