如何从单个字符中替换多个字符?

时间:2014-03-12 12:22:19

标签: php

我的变量包含"1,5,4,,,,6,4,9,12,55,,,4,,,,9,,,,,"之类的字符串,我希望获得类似"1,5,4,6,4,9,12,55,4,9"的输出。我知道在C#中有很多方法可以做到这一点。但是,现在我正在用PHP编写代码。所以,我无法使用任何.net功能。

有一个循环正在处理所有行以删除不必要的逗号,列表的长度可能超过15000.

我对php没有足够的了解。我是一名自学者。

3 个答案:

答案 0 :(得分:4)

分解它,删除空值,然后再次内爆。

$str = "1,5,4,,,,6,4,9,12,55,,,4,,,,9,,,,,"; 
$str = implode(',', array_filter(explode(',', $str)));

答案 1 :(得分:1)

简单。使用正则表达式。

$v = "a,b,,,,,,c,d,f,,,,t";
 $x = preg_replace("/,{2,}/", ",", $v);
 echo $x;

结果:

a,b,c,d,f,t

注意:

PHP正则表达式经过高度优化,可能需要更少的时间(因此资源)来完成该过程(比阵列爆炸...)

答案 2 :(得分:0)

preg_replace应该有用 -

$pattern = Array('/,{2,}/','/,{1,}$/');
$replace = Array(",","");
$string = "1,5,4,,,,6,4,9,12,55,,,4,,,,9,,,,,";
$res = preg_replace($pattern,$replace,$string);
var_dump($res);
/** OUTPUT **/
//string '1,5,4,6,4,9,12,55,4,9' (length=22)