Php字符串-使用字符串中的模式分解为数组
我有一个类似这样的字符串:Php字符串-使用字符串中的模式分解为数组,php,string,preg-replace,Php,String,Preg Replace,我有一个类似这样的字符串: $string = "Item 1|Item 2|Item 3|Item 4|Item 5" 迭代此字符串并删除重复项的最佳方法是什么。例如,它知道要比较的代码的每一部分都在“|”字符之间 它将选择Item1和preg\u replace()字符串的其余部分。然后它将查看下一项(Item2)和preg\u replace()字符串的其余部分 棘手的部分是如果项目1==项目2。然后,算法将替换项目2,项目3将是下一个要查看的项目 我试过几种方法,但都不管用。有什么想法
$string = "Item 1|Item 2|Item 3|Item 4|Item 5"
迭代此字符串并删除重复项的最佳方法是什么。例如,它知道要比较的代码的每一部分都在“|”字符之间
它将选择Item1和preg\u replace()
字符串的其余部分。然后它将查看下一项(Item2)和preg\u replace()
字符串的其余部分
棘手的部分是如果项目1==项目2
。然后,算法将替换项目2,项目3将是下一个要查看的项目
我试过几种方法,但都不管用。有什么想法吗?谢谢 如果我理解正确,忽略所有关于
preg\u replace()
的内容,如果您只是想删除重复项,那么使用一些数组操作
explode()。使用array\u unique()
和内爆()
将其过滤回管道分隔字符串:
$array = explode("|", "Item 1|Item 2|Item 3|Item 4|Item 5");
$unique = array_unique($array);
implode("|", $unique);
伟大的我会很难为情地展示我是如何试图做到这一点的。非常感谢@PirstinedDesign:那么,你在这里做preg_替换吗?我本来打算使用preg_替换(),但是explode introde方法看起来更优雅、更高效。
$items = explode('|',$string);
$unique_items = array_unique($items);
$unique_string = implode('|', $unique_items);