php 递归 层数,PHP递归方法完美实现获取无限极子栏目功能,带层级输出

PHP递归方法完美实现获取无限极子栏目功能,带层级输出

在做内容分类的时候往往需要采取子栏目机制,既某个栏目是另一个栏目的子栏目,依次层次可能很多,这时需要通过递归方法来实现获取,MySQL数据库中的数据都是平行的。本文完美实现这种层级关系,并输出层级关系的内容。

先看数据库中的分类结构

9bfe686e022ad825d07f3ec3267464c6.png

第一步:读取数据库内容header("Content-type:text/html;charset=utf-8");

require('mysql.php');

$con= new mySQLHelper;

$data= $con->chaxun('select * from lyg_urlfavorite_type order by tid asc,sort asc,id desc','');

第二步:数据进行递归、层级处理(重点)//(循环数组,父栏目ID,层次)

function getson($arr,$tid=0,$level){

static $res;//静态变量 只会被初始化一次

foreach($arr as $k=>$v){

$ctid = intval($v['tid']);

$cid = intval($v['id']);

if($ctid===$tid){

$tmp = $v;

$tmp['levelsign'] = $level;

$res[] = $tmp;

getson($arr,$cid,$level+1);

}

}

return $res;

}

//html构造方法

function levelhtml($level=0){

$x=0;

$html='';

while($x

$html='—'.$html;

$x++;

}

return $x===0?$html:'|'.$html;

}

第三步:数据美化及输出$_arr = getson($data,0,0);

$color = array(

'c0'=>'#000000',

'c1'=>'#336666',

'c2'=>'purple',

'c3'=>'green',

'c4'=>'red',

'c5'=>'blue',

);

foreach($_arr as $k=>$v){

echo "".levelhtml($v['levelsign']).$v['typename'].'
';

}

echo "
";

echo "";

foreach($_arr as $k=>$v){

echo "".levelhtml($v['levelsign']).$v['typename']."";

}

echo "";

最终效果展示

f731718282eb8f33411cbdba9e1b1621.png

博主卢雨高原创,转载请带上本文链接。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值