如何防止在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>
答案 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);