我正在拉数据,它提供的格式不是很整洁。例如,数据提供了类似于以下内容的内容:
- 大众高尔夫 2.0 TDI 高尔夫比赛 大众 帕萨
- 特 帕萨特 SE
但是我想做的只是删除重复单词的第二个(以及任何后续出现),以便字符串看起来像:
- 大众高尔夫 2.0 TDI 比赛
- 大众帕萨特 SE
创建一个单词数组,删除已经重复单词的下一行,然后从数组行中重新构建字符串。有没有人有其他(更好的)想法来做到这一点?它是同步服务的一部分,已经非常耗费资源,因此使此过程尽可能高效非常重要。
提前感谢您的任何想法。穆乔斯欣赏!斯特
就像你说的:
- 将字符串分解到数组
- 删除重复项
- 内爆回字符串
法典:
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
<?php
$arr = explode(' ', $str);
$arr = array_unique($arr);
$str = implode(' ', $arr);