У меня возникли проблемы с выяснением этого.
У меня есть следующая строка CSV
hello world, hello world, hello
Среднее значение имеет лишние пробелы. Я обрезаю это, используя
preg_replace('/( )+/', ' ', $string)
Функция отличная, но она также удаляет пробелы после запятых. Становится ..
hello world,hello world,hello
Я хочу сохранить 1 пробел после запятой, вот так
hello world, hello world, hello
Как я могу это сделать?
РЕДАКТИРОВАТЬ:
Использование preg_replace('/(?<!,) {2,}/', ' ', $string);
, как предложено, работает, но я столкнулся с другой проблемой .. Когда я использую более 1 пробела после запятой, он возвращает 2 пробела после запятой.
так
hello world, hello world,hello
возвращает
hello world, hello world, hello
В качестве решения я создаю массив из строки CSV и использовал implode()
$string = "hello world, hello world,hello";
$val = preg_replace('/( )+/', ' ', $string);
$val_arr = str_getcsv($val); //create array
$result = implode(', ', $val_arr); //add comma and space between array elements
return $result; // Return the value
Теперь я получаю hello world, hello world, hello
Это также обеспечивает пробел после запятой, если отсутствует.
Кажется, работает, не уверен, что есть лучший способ. Отзывы приветствуются:)