Stripping last comma from a foreach loop
我使用foreach循环从数据库中回显一些值,如果这有意义的话,我需要从最后一个循环中去掉最后一个逗号。
我的循环很简单,如下所示
1 2 3 | foreach($results as $result){ echo $result->name.','; } |
发出回声
1 | result,result,result,result, |
号
我只需要去掉最后那个讨厌的逗号。
任何帮助都很好:)
干杯
更好的:
1 2 3 4 5 |
1。但在大concat添加
1 2 3 4 5 6 | $s = ''; foreach ($results as $result) { if ($s) $s .= '|'; $s .= $result; } echo $s; |
demo
2。如果没有最后的项目1 2 3 4 5 6 7 | $s = ''; $n = count($results); foreach ($results as $i => $result) { $s .= $result; if (($i+1) != $n) $s .= '|'; } echo $s; |
demo
3。然后,implode load大阵列demo
4。然后把最后的弦乐concat大1 2 3 4 5 6 | $s = ''; foreach ($results as $result) { $s .= $result . '|'; } echo substr($s, 0, -1); # echo rtrim($s, '|'); |
demo
5。使用demo
1 2 3 4 5 | $result_names = ''; foreach($results as $result){ $result_names .= $result->name.','; } echo rtrim($result_names, ','); |
我已经与本期有相同类似的问题最近。我使用它由固定的安全increment美元,它initializing 0,然后在它里面的foreach increment环。在别的地方,如果环安全,包括回声,与该项声明的是我用逗号,如果不counter美元的sizeof(煤)的阵列/操作员的变量。
我不知道如果这会解决你的问题本身,但它帮助我与我的。这个问题是我realize年-老了,但这将帮助hopefully的别的。我在相当大的新的PHP,所以我不完全明白很多的答案,我是在给定的,虽然他们是相当insightful implode,特别的一个。
1 2 3 4 5 6 7 8 9 | $i=0; foreach ($results as $result) { $i++; if(sizeof($results) > $i) { echo $result .","; } else { echo $result; } } |
1 2 3 4 5 | $string =""; while ($row = mysql_fetch_array($result)) { $string .= $name . ', '; } echo substr($string, 0, strlen($string) - 2); |
不是因为漂亮,但也的作品:
1 2 3 4 5 6 | $first=true; foreach($results as $result){ if(!$first) { echo ', '; } $first=false; echo $result->name; } |
1 2 3 4 5 6 | $arraySize = count($results); for($i=0; $i<$arraySize; $i++) { $comma = ($i<$arraySize) ?"," :""; echo $results[$i]->name.$comma; } |
1 2 3 4 5 6 7 8 9 | <?php $i = 1; $count = count( $results ); foreach( $results as $result ) { echo $result->name; if ( $i < $count ) echo","; ++$i; } ?> |
很容易与
1 2 3 |
参考这里。
另一个聪明的方法是:
1 2 3 4 | foreach($results as $result){ echo ($passed ? ',' : '') . $result->name; $passed = true; } |
在这种情况下,在第一环
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
1 2 3 4 5 6 7 8 9 | $a[0] = 'John Doe'; $a[1] = 'Jason statham'; $a[2] = 'Thomas Anderson'; $size = count($a); foreach($a as $key=>$name){ $result .= $name; if($size > $key+1) $result .=', '; } echo $result; |
我要做这个,因为我总是阿洛特试图在jplot饲料数量大,我发现其容易的在前面用逗号把名人像比环:
1 2 | foreach($arrayitem as $k){ $string = $string.",".$k; } |
然后快点把第一个字符(用逗号substr的helps)使用它,如果你知道一个guestimate的弦乐将是长的,我不知道什么是对的limit substr最大特点。
1 |
希望这helps。
第一个得到所有的输出由buffering输出使用。然后,用逗号和显示它的装饰。所以,因为它像这样:
1 2 3 4 5 6 7 8 | ob_start(); foreach($results as $result) { echo $result->name.','; } $output = ob_get_clean(); echo rtrim($output, ','); |
如果该方法的输出buffering helps环是非常大的(在这里是posting和柯博文,只为brevity),然后使用ob是容易变化的研究internals无环。