2016-05-23 3 views
4

У меня есть строка, как это:Как удалить повторяющиеся подстроки из строки

«Испания, Франция, Испания, Германия, Франция, Испания»

необходимо иметь только уникальные подстроки

'Испания, Франция, Германия'

единственный способ, которым я мог й чернила были преобразованы в массив и обратно:

$countries = "spain,france,spain,germany,france,spain"; 
$country = implode(",", array_unique(explode(",", $countries))); 

Другой/правильный способ сделать это?

+7

Возможный дубликат [удалить дубликаты из разделенных запятыми строки] (http://stackoverflow.com/questions/5134176/remove-duplicates-from-comma-separated-string) – Eric

+0

, только если исходная строка может содержать пробел после запятой, вам понадобится другое решение – splash58

+0

@ splash58 исходная строка может иметь пробелы после запятой, будет ли другое решение лучше/быстрее ? – Leo

ответ

0

Я думаю, что ваш способ сделать это хорошо. Но вам нужно следить за пробелами между запятой и словом. Для этого просто добавьте:
$countries = str_replace(' ', '', $countries);

Если вы ожидаете пробельные символы, чтобы быть там, как хорошо вы должны удалить их, используя регулярные выражения:
$countries = preg_replace('/\s/', '', $countries);

Если вы не знаете разницу между пространства и пробельные:

  • пространство просто регулярное пространство символов будет подростковые другие символы
  • Пробелы могут быть пространства, табуляция, новая строка и т.д.

source

+0

Или используя «карту (« обрезка », взорвать())« после взрыва – lvil

+0

, если это будет «Великобритания,'? – splash58

Смежные вопросы