我要做的是下图的样式,你可以
参考下面两个
网站的留言板。它们的实现原则是相同的。
畅言留言板风格:
网易以下的风格:
原理
您需要在评论表中添加两个主要字段:id和PID,并添加其他字段,如文章ID、回复时间、回复内容、对人的答复。
pid是当前正在进行的评论的ID。
正如你从上面看到的,它的每个层的PID是他以前评论的ID。仔细看看上面的布局。它很像PHP中的多维数组吗如果你能想到的话,那很容易。
实现
方法 1。前台:这是更简单的div嵌入式师随后的边界和边缘填充div
设置 2、
背景:使用两个递归。首先,我们使用递归对数据库中的结果进行重组和重组,然后递归地输出上面的前向代码。
评论表的结构和内容如下
然后直接读取表中的所有注释。
阵列
(
{ 0 }数组
(
{ 1
{
{ 1个注释
)
{ 1 }数组
(
{ 2
{
{ 2个注释
)
{ 2 }数组
(
{ 3
{
{ 3个注释
)
{ 3 }数组
(
{ 4
{ 1
4注释1注释
)
{ 4 }数组
(
{ 5
{ 1
5注释1注释
)
{ 5 }数组
(
{ 6
{ 2
6注释2注释
)
{ 6 }数组
(
{ 7
{ 4
7注释4注释
)
{ 7 }数组
(
{ 8
{ 7
8注释7注释
)
{ 8 }数组
(
{ 9
{ 8
9注释8注释
)
{ 9 }数组
(
{ 10
{ 8
10注释8注释
)
)
然后我们需要把这个数组放在上面的留言板上。
数组是上面读取的数组,首先取出
默认PID为空,然后递归,并将PID作为当前注释ID的数组。
公共静态
函数树($数组,$子 子
{
$ { };
foreach(数组$ V){
如果($ V { 'pid} = = $ PID){
$ V { $孩子} =自我::树($array美元美元,孩子,V { 'id' });
$;
}
}
返回$ $;
}
重组后,您可以得到以下数组。您可以看到,该数组的样式与前面的注释样式非常相似。
阵列
(
{ 0 }数组
(
{ 1
{
{ 1个注释
{子数组
(
{ 0 }数组
(
{ 4
{ 1
4注释1注释
{子数组
(
{ 0 }数组
(
{ 7
{ 4
7注释4注释
{子数组
(
{ 0 }数组
(
{ 8
{ 7
8注释7注释
{子数组
(
{ 0 }数组
(
{ 9
{ 8
9注释8注释
{子数组
(
)
)
{ 1 }数组
(
{ 10
{ 8
10注释8注释
{子数组
(
)
)
)
)
)
)
)
)
{ 1 }数组
(
{ 5
{ 1
5注释1注释
{子数组
(
)
)
)
)
{ 1 }数组
(
{ 2
{
{ 2个注释
{子数组
(
{ 0 }数组
(
{ 6
{ 2
6注释2注释
{子数组
(
)
)
)
)
{ 2 }数组
(
{ 3
{
{ 3个注释
{子数组
(
)
)
)
在获得上面的数组后,可以使用递归输出。
公共静态函数traversearray(数组)
{
foreach(数组$ V){
;
echo $ V { 'content' };
如果($ V {''}){
自::traversearray($ V {''});
}
;
}
}
然后你可以看到
其原理是重构数组并遍历输出。
以上是PHP来实现网易的全过程和留言板螺纹畅言的风格,你也可以尝试进行创新,本文希望对大家的
学习有所帮助。