作者:glh3112259 | 来源:互联网 | 2020-09-05 14:06
php实现无限级评论的方法:1、首先在评论表中加入一个存放父级评论ID的字段,其默认值为0;2、再编写一个递归函数,将评论数据转换成树形结构;3、最后将转换后的评论数据,递归循环展示出来或交给前端处理即可。
php实现评论无限级方法
1、首先在评论表中加入一个存放父级评论ID的字段,其默认值为0,当父级ID为0是就顶级分类。
SQL:
CREATE TABLE comment (
comm_id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
user_id INT UNSIGNED NOT NULL DEFAULT 0 ,
parent_id INT UNSIGNED NOT NULL DEFAULT 0 ,
article_id INT UNSIGNED NOT NULL DEFAULT 0 ,
comm_cont TEXT,
comm_time INT UNSIGNED NOT NULL DEFAULT 0
) ENGINE=MYISAM CHARSET=UTF8 ;
2、再创建一个递归函数,将评论数据转换成树形结构;
PHP:
function get_childs_comment($comments, $parent_id = 0, $level = 0)
{
$new_comments = [];
foreach ($comments as $key => $val) {
if ($val['pid'] == $parent_id) {
$val['level'] = $level;
$val['childs'] = get_childs_comment($comments, $val['id'], $level + 1);
$new_comments[] = $val;
}
}
return $new_comments;
}
返回出来的数据结构如下:
[
'一级评论',
'childs' => [
'二级评论'
'childs' => [
'....'
]
]
]
3、最后将转换后的评论数据,循环展示出来即可。
以上就是php实现无限级评论功能的详细内容,更多请关注 第一PHP社区 其它相关文章!