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中文網其他相關文章!