【问题标题】:turn array into string and remove specific item将数组转换为字符串并删除特定项目
【发布时间】:2013-07-28 15:02:52
【问题描述】:

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

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

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

最好的方法是什么?

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

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

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

【问题讨论】:

    标签: php arrays


    【解决方案1】:

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

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

    【讨论】:

    • 天哪,效果很好。这比我预期的要容易得多。非常感谢您的帮助
    猜你喜欢
    • 2021-03-31
    • 2021-07-02
    • 2017-03-24
    • 1970-01-01
    • 2020-06-20
    • 1970-01-01
    • 2020-06-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多