PHP:在每个单词后添加逗号(最终除外)

时间:2012-03-23 17:55:01

标签: php

我有一个字符串(不是一个数组,它是一个存储在一个字符串中的单词的负载),我想在每个单词后加一个逗号,尽管不是在最后一个单词之后加一个。我有;

echo str_replace(' ', ', ', $stilltodo); 

但是由于某种原因,在逗号之前添加了一个空格(之后也是正确的),也是最后一个空格。我怎么能改变它以达到我想要的效果。

'基础'字符串的示例

French History Maths Physics Spanish Chemistry Biology English DT Maths History DT Spanish English French RS

上面代码的当前输出示例

French , History , Maths , Physics , Spanish , Chemistry , Biology , English , DT , Maths , History , DT , Spanish , English , French , RS ,

6 个答案:

答案 0 :(得分:4)

试试这个:

$newstring = implode(", ", preg_split("/[\s]+/", $oldstring));

preg_split()会将您的字符串拆分为一个数组,而implode()会将它们全部折叠成一个字符串。 preg_split()中使用的正则表达式将处理您在单词之间可能有多个空格的任何实例。

答案 1 :(得分:4)

使用implode / explode。

$t = "French History Maths Physics Spanish Chemistry";

// turn this into an array
$a = explode(" ", $t );

// output without final comma
echo implode(", ", $a );

应该得到你想要的东西:“法语,历史,数学,物理,西班牙语,化学”

答案 2 :(得分:3)

implode(', ', explode(' ', $base_string));

答案 3 :(得分:2)

rtrim()一个去:

echo rtrim(str_replace(' ', ', ', $stilltodo, ','); 

这将从字符串末尾删除任何逗号。我已在str_replace()函数中包含rtrim()以将其保持在一行,但将其拆分为两行可能会更清楚。

答案 4 :(得分:0)

在没有任何功能的字符串中添加逗号....简单nd 100%工作

<?php

$arr = array(1,2,3,4,6,8,8,8,9);

$str = '';

foreach ($arr as $key => $value) {

        $str = ($str == '' ? '' : $str . ',') . $value;

}

echo $str;

答案 5 :(得分:0)

在PHP中

将数组设为

$lists=Array ( [0] => 12 [1] => 9 [2] => 10 [3] => 8 )

,我们希望它打印为12,9,10,8

只需使用implode

语法:

implode(glue, pieces) 
$items=implode( $lists, ",");