php实现无限级评论功能
来源:凉官灰
发布时间:2020-05-06 13:31:33
阅读量:1007
php实现评论无限级方法
1、首先在评论表中加入一个存放父级评论ID的字段,其默认值为0,当父级ID为0是就顶级分类。
SQL:
1 2 3 4 5 6 7 8 | 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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 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 ;
}
|
返回出来的数据结构如下:
1 2 3 4 5 6 7 8 9 10 | [
'一级评论' ,
'childs' => [
'二级评论'
'childs' => [
'....'
]
]
]
|
3、最后将转换后的评论数据,循环展示出来即可。