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

在PHP中删除foreach中逗号的最后一部分?,php,foreach,Php,Foreach,如何防止在标题3的末尾插入逗号 foreach ($_POST['titles'] AS $title) { echo "{$title},"; }; 结果: title1,title2,title3, 更新: 它以表单数据的形式出现,这是数组。不要走这条路标题1,标题2,标题3, <form> <select name="titles[]"> <option>title1</title> <option>title2&l

如何防止在标题3的末尾插入逗号

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

title1,title2,title3,
更新: 它以表单数据的形式出现,这是数组。不要走这条路<代码>标题1,标题2,标题3,

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

标题1
标题2
标题3
标题4
只需使用
内爆()
-这相当于
.join()

或者简单地说:

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 ',';}
}
/$titles=explode(',',$\u POST['titles']);
$titles=$_POST['titles'];
对于($i=0;$i
您应该使用
内爆

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

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

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

我同意其他的答案-内爆()是一条路要走。但是如果你不想/继续走你现在的路

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

只需删除foreach之后结果的最后一个字符,为什么不直接执行
内爆(“,”,$\u POST['titles]”)
?那么您就不必担心最后一个逗号了。使用
substr
@Patrickqa正如其他答案所说,您可以通过针对您的用例的
内爆()。对于其他可能正在处理多维数组但不能这样做的人,请使用
For each
在变量中构建一个字符串,然后通过
trim()
运行该字符串,以除去任何尾随空格或其他指定字符(如逗号),它作为表单数据。@PatrickQ您能更具体地描述一下吗?我觉得很好。“这相当于.join()”-这句话的意思是什么?@user1597430与Java/JavaScript语法相比。。。并将我的怀旧语法更新为当前的参数顺序。@JavaOgreniyor您似乎混淆了输入和输出?那
HTML
也是无效的。
HTML
form
select
只有一个结果值;
标题[]
没有意义。请看……每个问题一个问题。(文件建议使用类似的爆炸论点顺序。)
$output = "";
foreach ($_POST['titles'] AS $title) {
    $output .= "{$title},";
};
echo substr($output, 0, -1);