当前位置: 网学 > 编程文档 > PHP > 正文

PHP无限分类代码,支持数组格式化、直接输出菜单两种方式

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 13/06/21

文章导读:在新的一年中,各位网友都进入紧张的学习或是工作阶段。网学的各位小编整理了PHP-PHP无限分类代码,支持数组格式化、直接输出菜单两种方式的相关内容供大家参考,祝大家在新的一年里工作和学习顺利!

复制代码 代码如下:
<?php
/**
+------------------------------------------------
* 通用的树型类
+------------------------------------------------
* @author yangyunzhou@foxmail.com
+------------------------------------------------
* @date 2010年11月23日10:09:31
+------------------------------------------------
*/
class Tree
{

/**
+------------------------------------------------
* 生成树型结构所需要的2维数组
+------------------------------------------------
* @author yangyunzhou@foxmail.com
+------------------------------------------------
* @var Array
*/
var $arr = array();

/**
+------------------------------------------------
* 生成树型结构所需修饰符号,可以换成图片
+------------------------------------------------
* @author yangyunzhou@foxmail.com
+------------------------------------------------
* @var Array
*/
var $icon = array(''│'',''├'','' └'');

/**
* @access private
*/
var $ret = '''';

/**
* 构造函数,初始化类
* @param array 2维数组,例如:
* array(
* 1 => array(''id''=>''1'',''parentid''=>0,''name''=>''一级栏目一''),
* 2 => array(''id''=>''2'',''parentid''=>0,''name''=>''一级栏目二''),
* 3 => array(''id''=>''3'',''parentid''=>1,''name''=>''二级栏目一''),
* 4 => array(''id''=>''4'',''parentid''=>1,''name''=>''二级栏目二''),
* 5 => array(''id''=>''5'',''parentid''=>2,''name''=>''二级栏目三''),
* 6 => array(''id''=>''6'',''parentid''=>3,''name''=>''三级栏目一''),
* 7 => array(''id''=>''7'',''parentid''=>3,''name''=>''三级栏目二'')
* )
*/
function tree($arr=array())
{
$this->arr = $arr;
$this->ret = '''';
return is_array($arr);
}

/**
* 得到父级数组
* @param int
* @return array
*/
function get_parent($myid)
{
$newarr = array();
if(!isset($this->arr[$myid])) return false;
$pid = $this->arr[$myid][''pid''];
$pid = $this->arr[$pid][''pid''];
if(is_array($this->arr))
{
foreach($this->arr as $id => $a)
{
if($a[''pid''] == $pid) $newarr[$id] = $a;
}
}
return $newarr;
}

/**
* 得到子级数组
* @param int
* @return array
*/
function get_child($myid)
{
$a = $newarr = array();
if(is_array($this->arr))
{
foreach($this->arr as $id => $a)
{
if($a[''pid''] == $myid) $newarr[$id] = $a;
}
}
return $newarr ? $newarr : false;
}

/**
* 得到当前位置数组
* @param int
* @return array
*/
function get_pos($myid,&$newarr)
{
$a = array();
if(!isset($this->arr[$myid])) return false;
$newarr[] = $this->arr[$myid];
$pid = $this->arr[$myid][''pid''];
if(isset($this->arr[$pid]))
{
$this->get_pos($pid,$newarr);
}
if(is_array($newarr))
{
krsort($newarr);
foreach($newarr as $v)
{
$a[$v[''id'']] = $v;
}
}
return $a;
}

/**
* -------------------------------------
* 得到树型结构
* -------------------------------------
* @author yangyunzhou@foxmail.com
* @param $myid 表示获得这个ID下的所有子级
* @param $str 生成树形结构基本代码, 例如: "<option value=\$id \$select>\$spacer\$name</option>"
* @param $sid 被选中的ID, 比如在做树形下拉框的时候需

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号