所以我正在写一个嵌套回复的评论系统的过程。我已经完成了存储和检索部分,并且最终得到了一系列评论对象,每个评论对象都有一个回复属性,它本身就是一个评论对象数组。适当的算法来替换三个嵌套循环 - 嵌套注释
我允许的最大深度是3 - 或回复答复。
我正在寻找一个适当高效的三个嵌套循环显示评论,或循环通过顶层,然后循环通过他们的答复,然后循环通过他们的回复,因为这是不可扩展的替代。
好了,我一直在问了一些代码:
class Comment{
public $replies = array();
public $content;
}
所以评论对象包含回复的数组,这本身就是评论的对象。这会深入三层,因此我有一系列顶级注释,每个注释都包含一组响应,每个响应都包含一组响应。
我想找到一个解决方案,它优于这一点,因为它出来到为O(n^3)我相信:
foreach($comments as $c){
//do some stuff to display the comment here
foreach($c->replies as $r){
//do some stuff to display the replies here
foreach($r->replies as $rr){
//do some stuff to display replies to replies here
}
}
}
为了获得合格答案的远程机会,我认为你必须发布一些代码 - 就像这些“_three嵌套loops_”的例子.. :) – davidkonrad
@davidkonrad - 修复,请参阅附加代码。 –
你的'评论'和'答复'和答复'保存在mysql表中的答复?如果是的话,我可以建议使用JOIN查询。 – Jhn