聊天/消息PHP foreach循环混乱

时间:2011-06-09 13:59:13

标签: php if-statement foreach chat messaging

我正在尝试建立一个消息系统,用户的消息按时间顺序显示。我想让用户对给定消息的回复直接列在他们回复的消息下面。

基本上我认为我需要以下5个变量:user_idrecipient_idmessage_idreply_idmessage

有人可以为此提供基本的PHP解决方案吗?我假设它只需要一些foreach个循环,而if,else语句,我只能提出解决方案。

这是我到目前为止只回复用户的回复而不是他们的消息,也没有嵌套在他们的消息中:

<?php foreach($messages as $message)
{
    $msg_id=$message->message_id;
    $rply_id=$message->reply_id;
    if($msg_id=$rply_id)
    {
        echo $message->message;
    }
}
?>

1 个答案:

答案 0 :(得分:1)

我将如何做到这一点:

将从数据库中提取的数据格式化为基本的id-indexed数组和外键索引数组

  • 从数据库中提取所有未回复的邮件,按日期排序。

  • 按消息ID索引生成的数组。

  • 从数据库中提取所有回复邮件,按日期排序。

  • 循环回复,将它们放入一个新的多维数组中,按reply_id分组。

输出格式

Foreach循环非回复消息:

  • 显示每条消息。

  • 拉出每封邮件的ID,并检查它是否是回复数组中的密钥。

  • 如果它出现在回复数组中......

    • Foreach循环显示每个回复消息。

消息foreach循环结束。