本文实例讲述了thinkPHP实现递归循环栏目并按照树形结构无限极输出的方法。分享给大家供大家参考,具体如下:
这里使用thinkphp递归循环栏目按照树形结构无限极输出,并保存为一个数组,利于模板调用
具体代码如下:
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
|
private function categoryTree( $parentid , $level )
//因为是本类中使用所以定于为私有函数
{
$Category = D( 'Category' );
$result = $Category ->where( "`parentid`=" . $parentid )->order( "listorder desc,catid desc" )->select();
if ( $result )
{
$count = count ( $result ); //当前子栏目个数
$level ++; //子栏目层级
foreach ( $result as $v )
{
$index ++;
if ( $count == $index ) $step = "└─" ;
else $step = "├─" ;
$step .= str_repeat ( ' ' , $level -1);
$nbsp = str_repeat ( ' ' , $level -1);
$nstr = $nbsp . $step ;
if ( $parentid ==0) $nstr = '' ;
$v [ 'step' ]= $nstr ;
$newData [ $v [ 'catid' ]]= $v ;
//echo $nstr.$v['catname']."<br />";
if ( $v [ 'child' ]==1) //如果有子栏目
{
$newData = $newData + $this ->categoryTree( $v [ 'catid' ], $level );
}
}
}
return $newData ;
}
|
php递归栏目保存为数组
希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。