删除foreach循环中的重复短语

时间:2013-08-23 11:03:08

标签: php wordpress foreach duplicates explode

我有以下问题:

在我的Wordpress 3.6中,我有一个名为“主题”的自定义字段。 该字段由RSS自动填充来自其他网站的短语,并添加了多个标准。它填写如下:“汽车,自行车,东西,小工具”

当我用get_posts查询wordpress时,我进入了我的foreach循环:

Cars,Bikes,Stuff,Gadget
Cars,Bikes
Bikes,Stuff
Gadget

我把它放到一个字符串中并替换一些东西:

$topic_filter = get_posts(
 array(
  'numberposts' => -1,
  'post_status' => 'private',
 )
);
$search_topic = array(' ', '-&-', '-|-', '-/-', '---');
$replace_topic = array("-", "-", "-", "-", "-", "");

foreach ($topic_filter as $post_topic) {
$str = str_replace($search_topic, $replace_topic, get_post_meta($post_topic->ID,     'topic', true));

echo $str;

}

最后的回声输出是:

Cars,Bikes,Stuff,Gadget,Cars,Bikes,Bikes,Stuff,Gadget

到目前为止一切顺利。但是现在如何删除重复项?

我尝试过implode / explode,但它没有做任何事情,因为我认为这些项目在foreach循环中,并且它仅适用于每个帖子。

但是我需要foreach循环,因为最终目标是将这个清理过的字符串作为html输出中的列表得到如下:

<input
  type="button"
  value="Cars"
  class="filter-button"

  data-control-type="button-filter"
  data-control-action="filter"
  data-control-name="Cars-btn" 
  data-path=".Cars" 
/>
<input
  type="button"
  value="Bikes"
  class="filter-button"

  data-control-type="button-filter"
  data-control-action="filter"
  data-control-name="Bikes-btn" 
  data-path=".Bikes" 
/>
<input
  type="button"
  value="Gadget"
  class="filter-button"

  data-control-type="button-filter"
  data-control-action="filter"
  data-control-name="Gadget-btn" 
  data-path=".Gadget" 
/>

对我来说似乎很复杂:-(

任何想法?我真的很高兴你的帮助!

谢谢!

1 个答案:

答案 0 :(得分:1)

使用array_unique

$str = "Cars,Bikes,Stuff,Gadget,Cars,Bikes,Bikes,Stuff,Gadget";
$r = explode(",", $str);
$unique = array_unique($r);
$new_str = implode(",", $unique);