удаление повторяющихся символов рядом друг с другом

im пытается удалить повторяющиеся символы, которые находятся непосредственно рядом друг с другом

1,2,3,4,5 – имеет несколько запятых, но их нельзя удалить 1, 2, 3, 4, 5 – пришлось бы превратить в обычный 1,2,3,4 , 5 независимо от того, сколько запятых находится между каждым числом, которое я хотел бы иметь только один. У меня есть нечто похожее, которое гарантирует, что в конце строки нет запятых:

$n = "1,2,3,4,5"; for ($i=0;$i< strlen($n);$i++) { if (substr($n, -1) == ',') { $n = substr($n, 0, -1); } } 

был бы признателен за некоторую помощь по этому вопросу,

Благодаря 🙂

Related of "удаление повторяющихся символов рядом друг с другом"

Похоже, вы только хотите сделать это с помощью запятых, поэтому с preg_replace очень легко сделать:

 $n = '1,2,,3,,,,,4,5'; $n = preg_replace('/,+/', ',', $n); // $n == '1,2,3,4,5' 

Также вы можете заменить код, который вы указали выше, чтобы убедиться, что в конце строки с rtrim нет запятых. Это будет быстрее и легче читать:

 $n = '1,2,3,4,5,,,,,' rtrim($n, ','); // $n == '1,2,3,4,5' 

Вы можете объединить их в однострочный:

 $n = preg_replace('/,+/', ',', rtrim($n, ',')); 
 $n = '1,2,,3,,,,,4,5'; $n = preg_replace('/(.)\\1+/', '$1', $n); 

Это должно работать для любых повторяющихся символов, следующих друг за другом.

Используйте Str_replace .

 $newstring = str_replace(',,', ',' , $String); 

заменит все экземпляры в вашей строке.