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

时间:2013-07-28 15:02:53

标签: php arrays

在我的网站上,我有/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。有什么想法吗?

1 个答案:

答案 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>';
}