我有一个问答论坛。用户可以浏览对问题的回答并在他们希望的情况下进行推广。下面的代码输出了推广给定问题的不同用户 - 用户在数组' $ Promoters'从$ promoters = Promotion :: find_all_promotions_for_response($ response-> response_id)行返回; 。然后foreach循环遍历每个并通过css类"启动器列表"输出它们的样式。问题是这.....如果我有一个推动者我只想让他们的名字输出(没问题)。但是,如果我有很多,我想在每个名称之间加一个逗号,然后在foreach循环中的姓氏后面没有逗号。直截了当的问题,但我没有实现这个....我试图在elseif条件中添加一个count($ promoters)行,这样如果数组$ promoters有多个值,那么它输出用户的fullname然后是逗号,但当然姓氏后面也有一个逗号,这是错误的。你如何识别foreach循环中的最后一次迭代,并要求它做一些不同的事情......
非常感谢你们......
<?php
$promoters = Promotion::find_all_promotions_for_response($response->response_id);
if(!empty($promoters)){
echo "<span class=\"promoted_by\">Promoted by </span>";
foreach($promoters as $promoter){
echo "<span class=\"promoter_list\">" . User::full_name($promoter->user_id) . ", </span>";
}
} else {
echo "";
};
?>
答案 0 :(得分:-1)
<?php
$promoters = Promotion::find_all_promotions_for_response($response->response_id);
if(!empty($promoters)){
echo "<span class=\"promoted_by\">Promoted by </span>";
foreach($promoters as $idx=>$promoter){
echo "<span class=\"promoter_list\">" . User::full_name($promoter->user_id);
if($idx < count($promoters) - 1) {
echo ", ";
}
echo "</span>";
}
} else {
echo "";
}
?>
<强>更新强>
这是使用{@ 1}}执行此操作的另一种方法,如@deceze所示:
implode