我的变量包含"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没有足够的了解。我是一名自学者。
答案 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)