Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 检查字符串是否有两个或多个逗号,并删除其他逗号_Php_Regex_String_Replace_Comma - Fatal编程技术网

Php 检查字符串是否有两个或多个逗号,并删除其他逗号

Php 检查字符串是否有两个或多个逗号,并删除其他逗号,php,regex,string,replace,comma,Php,Regex,String,Replace,Comma,我在名为“警报”的数据库列中找到了以下字符串 我将如何检查此字符串的数字之间是否有两个或多个逗号,以及如何删除额外的逗号以使字符串类似于此 $string = '1,2,3,4,5,6'; 使用此代码: $string = '1,2,,3,4,5,,,6'; $arr=explode(",",$string); $string=implode(",",array_filter($arr)); 或者,在一行中 $string = implode(",",array_filter(explode

我在名为“警报”的数据库列中找到了以下字符串

我将如何检查此字符串的数字之间是否有两个或多个逗号,以及如何删除额外的逗号以使字符串类似于此

$string = '1,2,3,4,5,6';
使用此代码:

$string = '1,2,,3,4,5,,,6';
$arr=explode(",",$string);
$string=implode(",",array_filter($arr));
或者,在一行中

$string = implode(",",array_filter(explode(",",$string)));

您应该使用正则表达式来实现这一点

preg_replace('/,,+/', ',', $string);
如果你不熟悉正则表达式,你应该用谷歌搜索它。有很多教程,一旦你熟悉了它们,你就可以用它们做很多事情。

试试这个:

$text = '1,2,,3,4,5,,,6,,2,,1,,2,9';
$textArray = preg_split("/[,.]+/", $text);
$textArray = array_filter($textArray);
echo implode(",", $textArray);
输出:1,2,3,4,5,6,2,1,2,9

如果您想要唯一的元素,那么第二行将是

$textArray = array_unique(preg_split("/[,.]+/", $text));

这也可以工作,而不需要加载正则表达式引擎的开销

$string = '1,2,,3,4,5,,,6';

do {
    $string = str_replace(',,', ',', $string, $count);
} while ( $count > 0 );

echo $string;
输出:

  1,2,3,4,5,6

它可以工作,你有一个很好的编码背景帕特尔:)比这(3个不同的功能)更快。它输出什么?对不起,我还没有测试,只是想知道我的PHP知识的增长。谢谢如果浮动也在文本中,此示例将无效。
  1,2,3,4,5,6