foreach的逗号问题

时间:2016-07-21 11:59:34

标签: php wordpress

我有这个代码。此代码用于显示WordPress中的所有类别。

foreach((get_the_category()) as $category) {
    echo $category->cat_name . ', ';
}

但即使只有一个类别显示,它背后的逗号仍然存在。我希望这样:

  
      
  • 1类别:[类别]
  •   
  • 2类:[类别] [类别]
  •   
  • 同样适用于3个类别:[类别] [类别] [类别]
  •   

这可能吗?我试过了:

foreach((get_the_category()) as $category) {
    $getcount = count(get_the_category());
    if($getcount > 1) {
        echo $category->cat_name . ', ';
    } else {
        echo $category->cat_name;
    }
}

但这也不是最好的解决方案,当有超过1个类别时,同样的问题也会出现。

非常感谢帮助。

5 个答案:

答案 0 :(得分:6)

您可以使用implode()

$categories = array()
foreach((get_the_category()) as $category) {
    $categories[] = $category->cat_name;
}
echo implode( ', ', $categories );

答案 1 :(得分:4)

为什么不使用the_category(', ');? 它还将列出所有职位类别

答案 2 :(得分:2)

您可以使用implode

$categories = []
foreach((get_the_category()) as $category) {
    $categories[] = $category->cat_name;
}

echo implode(', ', $categories);

或者您可以将implodearray_map

一起使用
echo implode(', ', array_map(function($category) {
    return $category->cat_name;
}, get_the_category()));

答案 3 :(得分:2)

尝试使用此功能。

std::lower_bound

答案 4 :(得分:1)

最简单的方法是在implode循环中构建array类别名称后使用foreach。它只需几行:

    <?php
        $catNames = array();
        foreach( (get_the_category()) as $category) {
            $catNames[] = $category->cat_name;
        }
        echo implode(', ', $catNames);