PHP foreach 循环显示特定项目

Posted

技术标签:

【中文标题】PHP foreach 循环显示特定项目【英文标题】:PHP foreach loop to show particular items 【发布时间】: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吗? 【参考方案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;
 

【讨论】:

以上是关于PHP foreach 循环显示特定项目的主要内容,如果未能解决你的问题,请参考以下文章

php foreach循环中的变量

foreach使用方法

详细讲解foreach循环的用法

for循环 switch foreach用法合区别

如何在PHP的foreach循环中重复特定的迭代?

foreach循环的跳出