Php字符串 - 使用字符串中的模式进入数组

时间:2011-08-12 18:19:36

标签: php string preg-replace

我有一个类似这样的字符串:

$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项将是下一个要查看的项目。

我尝试了几种方法但没有任何效果。有任何想法吗?谢谢!

2 个答案:

答案 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);