在我的网站上,我有/news/
的新闻列表,其中显示了所有新闻。我允许根据主题过滤新闻,方法是在网址中添加类别:/news/sports
或多个类别/news/sports+politics+crime
在我的应用程序中,我在+
上分解了URL并构建了一个数组,我用它来获取正确的新闻项。除了抓取项目,我还在页面上打印“标签”,用“X”删除给定的类别。因此,如果您前往/news/sports+politics+crime
,则在我打印的新闻列表Sports[X] Politics[X] Crime[X]
我想要做的是,就像同一网址的[X]
一样,减去要删除的类别。因此,href
犯罪的[X]
标记为/news/sports+politics
,但体育的href
标记为/news/politics+crime
这样做的最佳方式是什么?
在生成页面时,我通过我的类别数组循环:
foreach ($category as $cat) {
echo $cat . '<a href="/news/">[X]</a>';
}
在没有删除类别的情况下打印链接的最佳方法是什么?我想我可以以某种方式将数组扁平化为一个普通的旧字符串,然后查找/替换给定项目ex +crime
,然后将其转换回URL。有什么想法吗?
答案 0 :(得分: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>';
}