我有一个代码PHP如何删除foreach()中的“,”?
foreach ($cities as $city) {
echo substr($city->name . ", ", 0, -2);
}
结果是:A,B,C,d,E,
如何用的foreach除去 “”()
正确:a,b,c,d,e
我有一个代码PHP如何删除foreach()中的“,”?
foreach ($cities as $city) {
echo substr($city->name . ", ", 0, -2);
}
结果是:A,B,C,d,E,
如何用的foreach除去 “”()
正确:a,b,c,d,e
$first = true;
foreach ($cities as $city) {
if(!$first){
echo ', ';
}else{
$first = false;
}
echo $city->name;
}
更改它有点像:
$first = TRUE;
foreach ($cities as $city)
{
if (!$first)
{
echo(",");
}
$first = FALSE;
echo($city->name);
}
$str = '';
foreach ($cities as $city){
$str .= "$city, ";
}
$str = rtrim($str, " ,");
使用rtrim的foreach()
后:
$city->name = rtrim($city->name,',');
方法1:
$index = 0;
foreach ($cities as $city) {
$index++;
echo $city->name . ($index == count($cities)?"":",");
}
方法2:
$str = "";
foreach ($cities as $city) {
$str .= $city->name . ",";
}
$str = substr_replace($str ,"",-1);
echo $str;
我认为如果数组还有其他值,我们就不能在这里使用implode。如果$ city-> postalCode也存在于数组中,该怎么办? – 2011-12-28 08:40:07
在这种情况下,你不能没有额外的标记去掉最后一个逗号。
您还有其他两个选项:
1.使用循环标准:
for ($i=0; $i < count($cities)-1; $i++) {
echo $cities[$i]->name . ", ";
}
echo $cities(count($cities)-1)->name;
2.在foreach创建一个结果字符串,删除最后一个字符,比打印它。
只要做到: -
echo implode(',', $cites);
这会给你所需的输出。
我只是从你的代码注意到$cities
是一个对象不是一个数组,抱歉: - 字符串和从字符串最后`,`最后删除
foreach($cities as $city){
$cityNames[] = $city->name;
}
echo implode(',', $cityNames);
取值。其他逻辑也存在,但这对于这样的小任务将会是一个开销 – 2011-12-28 08:29:46