每个单词后添加逗号(除了最后一个单词)

问题描述 投票:0回答:6

我有一个字符串(不是数组,它是存储在一个字符串中的一堆单词),我想在每个单词后面放一个逗号,但不要在最后一个单词后面放一个逗号。我有;

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

但由于某种原因,在逗号之前添加了一个空格(也在逗号之后添加了一个空格,但这是正确的),并且在末尾也添加了一个空格。我怎样才能改变它以我想要的方式工作。

“base”字符串的示例

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 ,
php string replace delimited
6个回答
5
投票

试试这个:

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

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


5
投票
implode(', ', explode(' ', $base_string));

4
投票

使用内爆/爆炸。

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

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

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

应该可以满足您的需求:“法语、历史、数学、物理、西班牙语、化学”


2
投票

尝试一下

rtrim()

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

这将从字符串末尾删除所有逗号。我已将

str_replace()
包装在
rtrim()
函数中以使其保持在一行上,但将其分成两部分可能会更清晰。


0
投票

在字符串中添加逗号,没有任何功能......其简单且 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;

0
投票

在 PHP 中

令数组为,

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

我们希望它打印为

12,9,10,8

只需使用

implode

语法:

implode(glue, pieces) 
$items=implode( $lists, ",");
© www.soinside.com 2019 - 2024. All rights reserved.