實現回覆功能的方法有許多種,不過大致思路都相差不大,下面用的是評論回覆組合法,即將評論與回覆進行拼接,然後將其順序輸出即是完整的評論回覆系統。
下方採用的是ThinkPHP框架回復功能的核心代碼
1、要求評論一張表,回覆一張表,然後將其進行拼接。
其核心思想:每條評論對應多條回覆,即使用一個pid來代替。
//外循環控制評論數,內循環控制回覆數
for ($i = 0; $i < $list_count; $i++){
//echo $comment_data[$i]['id']."---";
$tmp_id = $comment_data[$i]['id'];
//在一維數組將評論賦值給$arr
$arr[] = $comment_data[$i];
//對應的回覆總數
$reply_list_count = $reply_list->where('pid='. "'$tmp_id'")->count();
//對應的回覆查詢
$reply_list_result = $reply_list->where('pid='. "'$tmp_id'")->order('addtime asc')->select();
//echo $tmp_id."的回覆有"."---".$reply_list_count."<br>";
for ($j = 0; $j < $reply_list_count; $j++)
{
$arr_child[$j] = $reply_list_result[$j];
//這裏將每次的循環進行二維疊加【二維疊加】
}
$arr[$i]['child'] = $arr_child;
unset($arr_child);
}