在PHP中的foreach中删除逗号的最后一部分?

时间:2018-12-10 21:22:51

标签: php foreach

如何防止在title3末尾插入逗号?

foreach ($_POST['titles'] AS $title) {
    echo "{$title},";
}; 

结果:

title1,title2,title3,

更新: 它以表格数据的形式出现,这是数组。不要这样title1,title2,title3,

<form>
<select name="titles[]">
<option>title1</title>
<option>title2</title>
<option>title3</title>
<option>title4</title>
</select>
</form>

4 个答案:

答案 0 :(得分:7)

只需使用implode()-与.join()等效:

echo implode(',', $_POST['titles']);

或简单地:

echo implode($_POST['titles']);

如果您确实要使用循环,则需要一个索引才能确定最后一个元素。 foreach循环不提供任何要比较的索引;这就是for循环非常适合的原因:

// $titles = explode(',', $_POST['titles']);
$titles = $_POST['titles'];
for($i=0; $i < sizeof($titles); $i++) {
    echo $titles[$i];
    if($i+1 != sizeof($titles)){echo ',';}
}

答案 1 :(得分:3)

看起来您可以完全跳过foreach,只需执行以下操作:

echo implode(',',$_POST['titles']);

答案 2 :(得分:0)

您应该改用implode

$string = implode(',', $_POST['titles']);

答案 3 :(得分:0)

我同意其他答案-implode()是解决之道。但是,如果您不想/继续前进,就……

$output = "";
foreach ($_POST['titles'] AS $title) {
    $output .= "{$title},";
};
echo substr($output, 0, -1);