【问题标题】:PHP foreach loop to show particular itemsPHP foreach 循环显示特定项目
【发布时间】:2013-07-10 17:26:01
【问题描述】:

好的,所以我有一个循环,它有 6 个项目(cmets),如下所示。

  • 用户 1 条评论
  • 用户2评论
  • 用户 1 条评论
  • 用户 1 条评论
  • 用户 3 评论
  • 用户 4 条评论

如果我限制 4 条评论,这就是我得到的结果

  • 用户 1 条评论
  • 用户2评论
  • 用户 1 条评论
  • 用户 1 条评论

但我希望能够消除相同的用户 cmets 而不是显示其他用户。应该是这样的。

  • 用户 1 条评论
  • 用户2评论
  • 用户 3 评论
  • 用户 4 条评论

我怎样才能做到这一点?

    foreach($latestcomments as $comment){

    echo $comment->content;

    }

【问题讨论】:

  • 你想为每个用户显示最近的评论吗?
  • 不可能只有一个循环。你至少需要两个:一个来找出你有什么样的 cmets,然后一个来输出它们。
  • @user20... 如果需要,不是循环不正确,而是获取数据的方式不正确。
  • 你能发布你的sql吗?

标签: php loops foreach


【解决方案1】:
$shown = array();

foreach($latestcomments as $comment) {
  if(!isset($shown[$comment->user])) {
     $shown[$comment->user] = true;
     echo $comment->content;
  }
}

如果用户之前没有被“显示”过,评论将被显示。如果有,评论将被跳过。

【讨论】:

  • 加上 $limit++ 和 $limit
【解决方案2】:

我是这样做的...

$user = ""; $i=0;

foreach($latestcomments as $comment) {
 if($i<=4){
   if($comment->user!=$user){
    echo $comment->content;
    $user = $comment->user;
    $i++;} else { $user = $comment->user;}
 }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多