PHP + RSS重复元素

时间:2010-03-03 21:19:01

标签: php

我使用这个PHP从RSS提要中获取标题列表:

<?php require_once('magpie/rss_fetch.inc');
$rss = fetch_rss('http://live.visitmix.com/Sessions/RSS');

foreach ($rss->items as $item) { 
    $cat = $item['category'];
    $title = $item['title'];
        echo '<li class="'.$cat.'">'.$title.'</li>';
}

?>

我想使用<category>并将其添加为类,但<category>元素会针对每个<item>显示1,2,3,4或更多次,具体取决于标题。如果超过1,我如何获取category元素并用空格分隔每个类别?

1 个答案:

答案 0 :(得分:0)

如何在数组中累积类别然后内爆数组呢?

$categoriesArray = array();

foreach ($rss->items as $item) { 
    array_push($categoriesArray, $item['category']);
}
$categories = implode(" ", $categoriesArray);

编辑添加

如果类别累积,您可以尝试这样的事情:

$categoriesByTitle = array();

foreach ($rss->items as $item) { 
        $currentTitle = $item['title'];
        $categories = $categoriesByTitle[$currentTitle];
        if ($categories == NULL) {
            $categories = array();
            $categoriesByTitle[$currentTitle] = $categories;
        }
        if (!in_array($item['category'], $categories)) {
            array_push($categories, $item['category']);
        }
}
foreach ($categoriesByTitle as $title=>$category) {
    // use implode for each title
    $categoryString = implode(" ", $category);
    echo '<li class="'.$categoryString.'">'.$title.'</li>';
}

检查这个reference for arrays,它对处理这类问题非常有用