php 无限分类功能实例(支持输出树状图)
内容摘要
这篇文章主要为大家详细介绍了php 无限分类功能实例(支持输出树状图),具有一定的参考价值,可以用来参考一下。
对此感兴趣的朋友,看看idc笔记做的技术笔记。经测试代码如下:
/**
对此感兴趣的朋友,看看idc笔记做的技术笔记。经测试代码如下:
/**
文章正文
这篇文章主要为大家详细介绍了php 无限分类功能实例(支持输出树状图),具有一定的参考价值,可以用来参考一下。
对此感兴趣的朋友,看看idc笔记做的技术笔记。经测试代码如下:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 | <code class = "php" > /** * 通用的树型类,可以生成任何树型结构 * * @param * @param $myid 表示获得这个ID下的所有子级 * @param $str 生成树形结构基本 * @author php教程 www.idcnote.com **/ class tree { /** * 生成树型结构所需要的2维数组 * @var array */ var $arr = array (); /** * 生成树型结构所需修饰符号,可以换成图片 * @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 ][ 'parentid' ]; $pid = $this ->arr[ $pid ][ 'parentid' ]; if ( is_array ( $this ->arr)) { foreach ( $this ->arr as $id => $a ) { if ( $a [ 'parentid' ] == $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 [ 'parentid' ] == $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 ][ 'parentid' ]; 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 ; }</code> |
注:关于php 无限分类功能实例(支持输出树状图)的内容就先介绍到这里,更多相关文章的可以留意
代码注释