在PHP中删除foreach中逗号的最后一部分?
如何防止在标题3的末尾插入逗号在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
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
formselect
只有一个结果值;标题[]
没有意义。请看……每个问题一个问题。(文件建议使用类似的爆炸论点顺序。)
$output = "";
foreach ($_POST['titles'] AS $title) {
$output .= "{$title},";
};
echo substr($output, 0, -1);