如何从字符串中删除重复的子字符串

4

我有一个这样的字符串:

'西班牙,法国,西班牙,德国,法国,西班牙'

需要只保留唯一的子字符串

'西班牙,法国,德国'

我能想到的唯一方法是将其转换为数组,然后再转回字符串:

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

有没有其他/正确的做法?


只有在源字符串可能在逗号后包含空格时,您才需要其他解决方案。 - splash58
@splash58 源字符串可能在逗号后有空格,另一个解决方案会更好/更快吗? - Leo
1个回答

0

我认为你的方法很好。但是你需要注意逗号和单词之间的空格。为了解决这个问题,只需添加:
$countries = str_replace(' ', '', $countries);

如果你希望空白字符仍然存在,你可以使用正则表达式将它们删除:
$countries = preg_replace('/\s/', '', $countries);

如果你不知道空格空白字符之间的区别:

  • 空格只是其他字符之间的普通空格字符
  • 空白字符可以是空格、制表符、换行符等

source


或者在 explode() 后使用 "map('trim', explode())"。 - lvil
如果是“Great Britain”,返回什么? - splash58

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接