从PHP字符串中删除多余的逗号

时间:2016-02-03 11:55:29

标签: php

我已从字符串中过滤掉一些关键字,以删除无效的关键字,但现在我有很多额外的逗号。我该怎么删除它们,所以我就这样做了:

,,,,,apples,,,,,,oranges,pears,,kiwis,,

到此

apples,oranges,pears,kiwis

这个问题很独特,因为它也会在开头和结尾处理逗号。

4 个答案:

答案 0 :(得分:9)

$string = preg_replace("/,+/", ",", $string);
基本上,你使用正则表达式查找任何一串逗号并用一个逗号替换它们。 它真的是一个非常基本的正则表达式。你应该了解那些!

https://regex101.com/将非常有帮助。

哦,忘了:要删除前面或后面的逗号,请使用

$string = trim($string, ",");

答案 1 :(得分:7)

使用PHP的explode()array_filter()函数。

<强>步骤:

1)用逗号分解字符串。

2)你会得到一个数组。

3)用array_filter()过滤它。这将从数组中删除空白元素。

4)同样,implode()结果数组用逗号。

5)您将从字符串中删除逗号。

<?php
$str = ',,,,,apples,,,,,,oranges,pears,,kiwis,,';
$arr = explode(',', $str);
$arr = array_filter($arr);
echo implode(',', $arr);// apples,oranges,pears,kiwis 
?>

答案 2 :(得分:1)

您还可以使用preg_splitarray_filter来实现这一目标。

$string = ",,,,,apples,,,,,,oranges,pears,,kiwis,,";
$keywords = preg_split("/[\s,]+/", $string);
$filterd = array_filter($keywords);
echo implode(",",$filterd);

<强>结果:

apples,oranges,pears,kiwis

<强>解释

  1. 用逗号分隔“,”到数组
  2. 使用array_filter删除空索引。
  3. 使用“,”打印内爆阵列。
  4.   

    From Manual: preg_split - 按正则表达式拆分字符串(PHP 4,PHP 5,PHP 7)

答案 3 :(得分:0)

如何使用preg_replace和trim?

$str=',,,,,apples,,,,,,oranges,pears,,kiwis,,';
echo trim( preg_replace('@,{2,}@',',',$str), ',');