安静,专注
培训时老师的无级分类的类
上一篇 /
下一篇 2007-03-07 14:40:08
/ 个人分类:PHP
以前听的不怎么明白,今天又看了一下,//R 为我的注释;
<? class Char_class { /** +------------------------------------------------------------------------------------------------ | 功能说明: 根据类表生成树型图. | 调用部分 : | ======================================== | $test_array = get_page_children($node_cache,0, $node_cache,0); | | echo "\n<select name=select>\n"; | | $last = "├─"; | foreach($test_array as $key=>$val) | { | $item = str_repeat(" │ ",$val['depth']); | echo "<option value=".$val['id'].">".$item.$last.$val['name']."</option>\n"; | $item = ''; | } +------------------------------------------------------------------------------------------------- */ //R 加载数组; function node_cache($inputnode){ global $node_cache; if (!is_array($node_cache) || empty($node_cache)){ $this->node_cache = $inputnode; } } //R 数组按树生成中序排列; function &get_page_children($id, $node,$depth=0)//& //R 返回引用 { global $node_cache; if ( empty($node) ) { $node = &$node_cache; //& } $depth++; //R 每递归一层深度+1; $tree_list = array();//R 每次初始化数组; if (is_array($node_cache)){ foreach ($node as $leap ) { if ($leap['parentid'] == $id) { $leap['depth'] = $depth - 1;//R 去除自加的效果,当前子结点属于当前深度; $tree_list[] = $leap; if ( $children = $this->get_page_children($leap['id'], $node,$depth)) {//R $children并非引用赋值,而是拷贝,为递归服务; $tree_list = array_merge($tree_list, $children); //R $children是一个二维数组; } } } } return $tree_list;//R 返回结点的所有子树; } /** +---------------------------------------------------------------------------------------------------- | 功能说明: 利用根据类表生成树型图的函数,生成一个下拉列表. +---------------------------------------------------------------------------------------------------- */ function get_page_select($Selectname,$Id,$Ex) { global $node_cache; $Array = $this->get_page_children(0, $node_cache,0); $Table = ""; $Table .=" <select name='".$Selectname."' ".$Ex.">\n"; $Table .=" <option value=0>├─Root</option>\n"; $last = "├─"; foreach($Array as $key=>$val) { $item = str_repeat(" │ ",$val['depth']); $Table .= "<option value='".$val['id']."'"; if (intval($Id)==intval($val['id'])){ $Table .= " selected "; } $Table .= ">".$item.$last.$val['subject']."</option>\n"; $item = ''; } return $Table; } } ?>
|
相关阅读:
- FleaPHP 开发指南 - 2. FleaPHP 中的 MVC 模式 (fleaphp, 2007-2-27)
- simpleXML用法简介1——获取某个元素的内容 (lightsaber, 2007-3-01)
- simpleXML用法简介2——获取某个元素的属性值 (lightsaber, 2007-3-02)
- simpleXML用法简介3—为某个元素添加子元素 (lightsaber, 2007-3-03)
- PHP Coding Standards (smiles_van, 2007-3-03)
- simpleXML用法简介4—为某个元素添加属性 (lightsaber, 2007-3-04)
- simpleXML用法简介5—将SimplXML对象以XML形式输出 (lightsaber, 2007-3-05)
- 用星际快速入门PHP面向对象编程(修订版) (lightsaber, 2007-3-05)
- 轻松处理zip文件1--将文件夹打包成zip文件 (lightsaber, 2007-3-06)
- 轻松处理zip文件2--解压缩zip文件 (lightsaber, 2007-3-07)
导入论坛
收藏
分享给好友
管理
举报
TAG:
PHP