2

我有多个分支站点,它们使用 Simplepie 将他们的 RSS 新闻提要馈送到一个主站点。这很好用。唯一的问题是,有时多个分支机构发布同一篇新闻文章,然后在主站点上显示多篇新闻文章。我将如何删除重复项?

<?php
require_once(ABSPATH .'php/simplepie.inc');
$feed = new SimplePie();

$feed->set_feed_url(array(

'http://www.branch1.com/feed/',
    'http://www.branch2.com/feed/',
    'http://www.branch3.com/feed/',
    'http://www.branch4.com/feed/',

));

$feed->set_favicon_handler('handler_image.php');
$feed->init();
$feed->handle_content_type();


foreach ($feed->get_items() as $property):

    // I want this to be unique
    echo $property->get_title();

endforeach;
?>

我已经试过了。没有运气。

foreach (array_unique($unique) as $property):

我还尝试进行第二次 foreach 寻找任何匹配的标题。并且只显示旁边有数字 1 或第一场比赛的那些......但它一直给我匹配的数量而不是:

1.Match0 1.Match1 2.Match1 3.Match1 1.Match2 2.Match2 等...

foreach ($feed->get_items() as $property):

 $t = $property->get_title();
 $match = 0;

foreach ($feed->get_items() as $property2): 
  $t2 = $property2->get_title();

  if ($t == $t2){
   $match++;
   //echo $match;
      }

    if ($match <= 2){echo "$match. $t <br/> ";}

    endforeach;

endforeach;
4

1 回答 1

4

尝试将获取的项目与标题的键放在另一个数组中,以便在数组中覆盖重复的标题。然后你从数组中拉回内容。

$arrFeedStack = array();
foreach ($feed->get_items() as $property):
    $arrFeedStack[$property->get_title()] = $property->get_description();
endforeach;

foreach ($arrFeedStack as $item) {
    echo $item . <br />;
}
于 2012-08-27T05:37:39.777 回答