关于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 '<pre class="brush:php;toolbar:false">'; 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;
登录后复制
相关文章:
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
刺客信条阴影:贝壳谜语解决方案
2 周前
By DDD
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
4 周前
By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

PHP 8.4 带来了多项新功能、安全性改进和性能改进,同时弃用和删除了大量功能。 本指南介绍了如何在 Ubuntu、Debian 或其衍生版本上安装 PHP 8.4 或升级到 PHP 8.4

CakePHP 是 PHP 的开源框架。它的目的是使应用程序的开发、部署和维护变得更加容易。 CakePHP 基于类似 MVC 的架构,功能强大且易于掌握。模型、视图和控制器 gu

Visual Studio Code,也称为 VS Code,是一个免费的源代码编辑器 - 或集成开发环境 (IDE) - 可用于所有主要操作系统。 VS Code 拥有针对多种编程语言的大量扩展,可以轻松编写

CakePHP 是一个开源MVC 框架。它使开发、部署和维护应用程序变得更加容易。 CakePHP 有许多库可以减少大多数常见任务的过载。

本教程演示了如何使用PHP有效地处理XML文档。 XML(可扩展的标记语言)是一种用于人类可读性和机器解析的多功能文本标记语言。它通常用于数据存储
