欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

求一段php调用代码

程序员文章站 2022-05-06 10:19:06
...
看图说话。

假设上面是一个表 。。
表里面 有 信息ID 和用户UID 和特定的PID

怎么在loop循环调用变量的时候 判断 其他条信息的PID = 当前信息的ID (红框所示)

我在调用的时候 这么判断

{loop $list}......{if $id == $pid}.......{/if} .....{/loop}


就被判断成当前的这条信息ID是否和PID相同了。关键是PID和ID 肯定不会在一条id的信息数据里 PID是针对ID的

代码我是这样写的

{loop $list}$id - $uid -$pid 
{/loop}


显示的结果是
1 -8 - 25
2 -3 - 36
3 -12 -1
这没有错 输出正确

我想要的结果是 第三条PID等于 第一条的ID 让他显示在第一条下面
怎么写代码啊 求解脱


回复讨论(解决方案)

其实是自己编写了个留言。
其中的ID就是 留言的信息ID 用于删改信息;其中的UID就是留言的作者ID;还有留言内容、时间等字段就不说了。

最重要的就是PID,是自动生成的 ,就是给第几条信息回复的,

我想比如给信息ID为1的信息留言,让他显示在这条信息下面 。不知道怎么操作。哎

两个数组,一个按照ID排序的数组A(key值是ID),一个按照PID排序的数组B(key值是PID)。
A数组key值:1、2、3、6、8。。。
B数组key值:1、3、34、35.。。
每次从两个数组最开始位置取数据,A指针取到1输出,然后取B的第一个,也是1,输出。再取A指到了2输出,B获取发现是3,不输出。再取A 3输出,再次看B,发现也是3输出。

数组排序就用php自带的方法复杂度大概O(nLgn),遍历两个数组复杂度O(n)。

两个数组,一个按照ID排序的数组A(key值是ID),一个按照PID排序的数组B(key值是PID)。
A数组key值:1、2、3、6、8。。。
B数组key值:1、3、34、35.。。
每次从两个数组最开始位置取数据,A指针取到1输出,然后取B的第一个,也是1,输出。再取A指到了2输出,B获取发现是3,不输出。再取A 3输出,再次看B,发现也是3输出。

数组排序就用php自带的方法复杂度大概O(nLgn),遍历两个数组复杂度O(n)。




每条信息包含ID和PID 这个循环是不错 但是会在key为ID的时候 把PID的也读取了

{loop $list $val}评论{$val['id']}{loop $list $val1}{if $val['id']==$val1['pid']}回复评论{$val['id']}的评论{/if}{/loop}{/loop}

没测试过,你看看行不行

$sqlstr = "select * from table";$query = mysql_query($sqlstr) or die(mysql_error());while($thread=mysql_fetch_assoc($query)){    $result[] = $thread;}foreach($result as $key=>$val){    if(isset($ret[$val['pid'])){        array_push($ret[$val['pid']], $val);    }else{        $ret[$val['pid']] = array($val);    }}print_r($ret);