1

在我的网站上,我有一个可用的新闻列表,/news/ 其中显示了所有新闻。我允许根据主题过滤新闻,方法是向 URL 添加类别,例如:/news/sports或多个类别/news/sports+politics+crime

在我的应用程序中,我分解了 URL+并构建了一个数组,用于获取正确的新闻项目。除了抓取项目之外,我还在页面上打印“标签”,并使用“X”删除给定的类别。因此,如果您转到/news/sports+politics+crime我已打印的新闻列表上方Sports[X] Politics[X] Crime[X]

我想要做的,就像[X]相同的 URL 减去要删除的类别。所以href犯罪的标签[X]是,/news/sports+politicshref体育的标签是/news/politics+crime

做这个的最好方式是什么?

在生成页面时,我正在遍历我的类别数组,如下所示:

foreach ($category as $cat) {
    echo $cat . '<a href="/news/">[X]</a>';
}

在不删除类别的情况下打印链接的最佳方法是什么?我在想我可以以某种方式将数组展平为一个普通的旧字符串,然后找到/替换给定的项目 ex +crime,然后将其转换回 URL。有任何想法吗?

4

1 回答 1

3

您可以使用array_diff()$category数组中删除当前类别:

foreach ($category as $cat) {
  $other_categories = array_diff($category, array($cat));
  echo $cat . ' <a href="/news/' . implode('+', $other_categories) . '">[X]</a>';
}
于 2013-07-28T15:16:33.040 回答