我有这样的字符串
$string = 'aaaaaa, bbbbbb, cccccc, ';
我希望将其修改为像这样
$string = 'aaaaaa, bbbbbb, cccccc';
最后一个','和空格被移除。
如何在PHP中执行此操作? 实现这个功能需要什么?
我的完整代码就像这样
if(isset($_POST['accomodation'])) $accomodation = 'Accomodation, ';
if(isset($_POST['dance'])) $dance = 'Dance Lessons, ';
if(isset($_POST['vacation'])) $vacation = 'Vacation planning, ';
if(isset($_POST['group'])) $group = 'Group Vacation, ';
if(isset($_POST['inprivate'])) $inprivate = 'Private Vacation, ';
if(isset($_POST['land'])) $land = 'Land purchase/lease';
if(isset($_POST['all'])) $all = 'All';
@$interest = $accomodation.$dance.$vacation.$group.$inprivate.$land;
@echo $string;
*对于这样一个愚蠢的问题感到抱歉,我已经很久没碰到原生的PHP编程了
答案 0 :(得分:5)
rtrim()功能:
rtrim($string,', ');
但是你如何定义字符串?可能你可以在没有逗号和空格的情况下构建它。
修改强>
$interests = array();
if(isset($_POST['accomodation'])) $interests[] = 'Accomodation';
if(isset($_POST['dance'])) $interests[] = 'Dance Lessons';
if(isset($_POST['vacation'])) $interests[] = 'Vacation planning';
if(isset($_POST['group'])) $interests[] = 'Group Vacation';
if(isset($_POST['inprivate'])) $interests[] = 'Private Vacation';
if(isset($_POST['land'])) $interests[] = 'Land purchase/lease';
if(isset($_POST['all'])) $all = 'All';
$interest = implode(', ',$interests);
echo $interest;
答案 1 :(得分:4)
$string = preg_replace('/\s*,\s*$/', '', $string);
或者,更酷的方式:
$string = rtrim($string, " ,");
请注意,模式字符串中字符的顺序无关紧要。
@您上次更新。 这改变了一些事情。您可以将所有变量放在一个数组中,然后将其内爆。像这样:
$items = array();
$items[] = $accomodation = 'Accomodation';
$items[] = $dance = 'Accomodation';
...
$result = implode(', ', $items)
答案 2 :(得分:1)
$string = preg_replace( "/,\s*$/","",$string);
应该做的伎俩
答案 3 :(得分:0)
它总是一个逗号,最后是一个空格吗?
substr($string, 0, -2)
答案 4 :(得分:0)
通常,您可以通过更改构建字符串的方式来完全避免使用尾随逗号。例如:
$count = 0;
foreach ($this as $that) {
if ($count != 0) {
$string .= ',';
}
$string .= $that['stuff'];
$count++;
}
无论结果如何组合,都会删除末尾任何尾随逗号的可能性。