PHP递归无限分类的 如何统计总条数 以及对显示的结果进行分页?比如设置为每页显示10个 。

function getTree($data, $pId, $level=0)
{
$tree = '';
foreach($data as $k => $v)
{
if($v['teacherbianhao'] == $pId)
{ //父亲找到儿子
unset($data[$k]);//注销当前节点数据,减少已无用的遍历

$v['teacherbianhao'] = getTree($data, $v['bianhao'],$level+1);
$tree[] = $v;
}
}
return $tree;
}
//这个位置带入参数
$tree = getTree($data, $bh,0);
function procHtml($tree)
{
$html = '';
foreach($tree as $t)
{
if($t['teacherbianhao'] == '')
{
$html .= "<li>{$t['nickname']}{$t['bianhao']}</li>";
}
else
{
// $html .= "<li>".$t['nickname'].$t['bianhao']."共".$t['level']."人";
$html .= "<li>".$t['nickname'].$t['bianhao'];
$html .= procHtml($t['teacherbianhao']);
$html = $html."</li>";
}
}
return $html ? '<ul>'.$html.'</ul>' : $html ;
}
echo procHtml($tree);

每个节点都要记录子节点的数量c。每新增一个节点都要对各父和祖节点的子节点计数加1。这样根节点会有总数的记录。
这样递归遍历时也可以根据子节点数量c的来确定读取的数量限制。比如 读取条数计数<10 就继续递归
在每个节点的表上 增加子节点的id集或计数,增加根节点到父节点路径,会方便这些操作。
温馨提示:内容为网友见解,仅供参考
无其他回答

Warning: Invalid argument supplied for foreach() in /www/wwwroot/aolonic.com/skin/templets/default/contents.html on line 45
相似回答