我有一个类似这样的字符串:
$string = "Item 1|Item 2|Item 3|Item 4|Item 5"
迭代此字符串并删除重复项的最佳方法是什么。所以例如它会知道要比较的每个代码部分都在'|'之间字符。
它将使用该Item选择Item1和preg_replace()
字符串的其余部分。然后它将查看下一个Item(Item2)和preg_replace()
该项的其余字符串。
棘手的部分是Item 1 == Item 2
。然后,算法将替换第2项,第3项将是下一个要查看的项目。
我尝试了几种方法但没有任何效果。有任何想法吗?谢谢!
答案 0 :(得分:6)
如果我理解正确,如果您真的只想删除重复项,请忽略所有关于preg_replace()
的内容,然后使用一些数组操作。
explode()
将|
放入数组中。使用array_unique()
和implode()
将其过滤回管道分隔的字符串:
$array = explode("|", "Item 1|Item 2|Item 3|Item 4|Item 5");
$unique = array_unique($array);
implode("|", $unique);
答案 1 :(得分:4)
$items = explode('|',$string);
$unique_items = array_unique($items);
$unique_string = implode('|', $unique_items);