0

我正在提取数据,它提供的格式不是很整洁。例如,数据提供了以下内容:

  • 大众高尔夫 2.0 TDI 高尔夫比赛
  • 大众帕萨特帕萨特 SE

但我要做的就是删除重复单词的第二个(以及任何后续出现的),以便字符串看起来像:

  • 大众高尔夫 2.0 TDI 比赛
  • 大众帕萨特 SE

到目前为止,我已经考虑从字符串中创建一个单词数组,删除已经重复该单词的下一行,然后从数组行中重新构建字符串。有没有人有任何其他(更好)的想法?它是同步服务的一部分,资源已经相当繁重,因此使这个过程尽可能高效很重要。

提前感谢您的任何想法。非常感谢!斯特

4

2 回答 2

2

像你说的 :

  1. 将字符串分解为数组
  2. 删除重复项
  3. 内爆回字符串

代码:

function short($v) {
    $v = trim(preg_replace('~\s+~', ' ', $v)); # just to clear extra spacing
    $v = explode(' ', $v);
    $v = array_unique($v);
    return implode(' ', $v);
}

例子;

$v = 'Volkswagen Golf 2.0 TDI Golf Match';
echo short($v); # Volkswagen Golf 2.0 TDI Match

$v = '   Volkswagen       Passat Passat     SE     ';
echo short($v); # Volkswagen Passat SE
于 2013-09-07T13:04:33.073 回答
0
<?php
$arr = explode(' ', $str);
$arr = array_unique($arr);
$str = implode(' ', $arr);
于 2013-09-07T13:04:45.673 回答