Php 将数组转换为字符串并删除特定项

Php 将数组转换为字符串并删除特定项,php,arrays,Php,Arrays,在我的网站上,我有一个新闻列表,可以在/news/上找到,其中显示了所有新闻。我允许根据主题过滤新闻,方法是在URL中添加类别,如:/news/sports或多个类别/news/sports+politics+crime 在我的应用程序中,我分解+上的URL,并构建一个数组,用于获取正确的新闻条目。除了抓取项目外,我还将“标签”打印到页面上,用“X”删除给定类别。因此,如果你去了/news/sports+politics+crime那么在我打印的体育[X]政治[X]犯罪[X]的新闻列表上方 我想

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

在我的应用程序中,我分解
+
上的URL,并构建一个数组,用于获取正确的新闻条目。除了抓取项目外,我还将“标签”打印到页面上,用“X”删除给定类别。因此,如果你去了
/news/sports+politics+crime
那么在我打印的
体育[X]政治[X]犯罪[X]的新闻列表上方

我想做的是,将
[X]
添加到相同的URL,减去要删除的类别。因此,犯罪的
href
标签
[X]
将是
/news/sports+politics
,但体育的
href
标签将是
/news/politics+crime

最好的方法是什么

在生成页面时,我会在类别数组中循环,如下所示:

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

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

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

foreach ($category as $cat) {
  $other_categories = array_diff($category, array($cat));
  echo $cat . ' <a href="/news/' . implode('+', $other_categories) . '">[X]</a>';
}
foreach($cat类){
$other_categories=array_diff($categories,array($cat));
回声$cat';
}

天哪,这真是太棒了。这比我想象的要容易得多。谢谢你的帮助