关于php评论回复无限极嵌套如何实现?已写基本代码,期待高手解惑
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了关于php评论回复无限极嵌套如何实现?已写基本代码,期待高手解惑,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1630字,纯文字阅读大概需要3分钟。
内容图文
问题:下面是有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 '<pre>'; 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 '</ul>'; }else{ for($k=$p[$i]; $k<count($var);$k++){ if($k == 0) echo '<ul>'; echo '<li>'.$var[$k]['title']; $p[$i]++; if(isset($new[$var[$k]['id']])){ $i = $var[$k]['id']; $j++; $q[$j] = $i; $next = true; break; } echo '</li>'; if($k == count($var)-1){ echo '</ul>'; } } } if($next){ continue; } $j--; if($j < 0){ break; } } exit;
相关文章:
PHP评论回复解决方法
使用php无线级别分门别类 实现评论回复功能
使用JS完美实现仿QQ空间评论回复特效
内容总结
以上是互联网集市为您收集整理的关于php评论回复无限极嵌套如何实现?已写基本代码,期待高手解惑全部内容,希望文章能够帮你解决关于php评论回复无限极嵌套如何实现?已写基本代码,期待高手解惑所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。