php无限级回复页面如何嵌套,关于php评论回复无限极嵌套如何实现?已写基本代码,期待高手解惑...

问题:

下面是有3层嵌套的评论,parent=0表示一级评论,parent=3表示父评论的id为3$comments = array (

array (

'id' => '3',

'parent' => '0'

),

array (

'id' => '9',

'parent' => '0'

),

array (

'id' => '1',

'parent' => '3'

),

array (

'id' => '2',

'parent' => '3'

),

array (

'id' => '5',

'parent' => '1'

)

,

array (

'id' => '7',

'parent' => '1'

)

);

最笨的办法,实现我要的效果$sub = array ();

foreach ($comments as $a) {

if ($a['parent'] == 0) {

foreach ($comments as $b) {

if ($b['parent'] == $a['id']) {

foreach ($comments as $c) {

if ($c['parent'] == $b['id']) {

$b['children'][] = $c;

}

}

$a['children'][] = $b;

}

}

$sub[] = $a;

}

}

echo '

';

print_r($sub);

打印出来的就是我要的效果,子评论作为父评论的子数组,但像我这么写没法嵌套多层评论,无限极嵌套要这么实现呢?

请求帮助,感激不尽!

解决方案:

是不是可以理解为 无限级 分类的问题?// 无限级分类

$list = array(

array('id'=>1, 'fid'=>0, 'title' => '中国'),

array('id'=>2, 'fid'=>1, 'title' => '江苏'),

array('id'=>3, 'fid'=>1, 'title' => '安徽'),

array('id'=>4, 'fid'=>8, 'title' => '江阴'),

array('id'=>5, 'fid'=>3, 'title' => '芜湖'),

array('id'=>6, 'fid'=>3, 'title' => '合肥'),

array('id'=>7, 'fid'=>3, 'title' => '蚌埠'),

);

$new = array();

foreach($list as $v){

$new[$v['fid']][] = $v;

}

$i = 0;

$j = 0;

$a = true;

$p[$i] = 0;

$q[$j] = $i;

while($a){

$next = false;

$i = $q[$j];

$var = $new[$i];

if(!isset($p[$i])){

$p[$i] = 0;

}

if($p[$i] == count($var)){

echo '';

}else{

for($k=$p[$i]; $k

if($k == 0)

echo '

  • ';

echo '

'.$var[$k]['title'];

$p[$i]++;

if(isset($new[$var[$k]['id']])){

$i = $var[$k]['id'];

$j++;

$q[$j] = $i;

$next = true;

break;

}

echo '

';

if($k == count($var)-1){

echo '';

}

}

}

if($next){

continue;

}

$j--;

if($j < 0){

break;

}

}

exit;

相关文章:

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值