如何在PHP生成的搜索结果表格中添加逗号分隔符
解决搜索结果表格Class Type列逗号分隔问题
你的问题出在直接循环输出每个分类名称时,没有正确处理分隔符(要么没生效,要么会在最后多一个多余的逗号)。我给你两种简单的解决方案,都能完美实现逗号分隔的效果:
方案一:用数组收集名称再拼接(最简洁)
把所有分类名称先存入数组,再用implode()函数直接用逗号拼接,这样自动避免最后一个元素后多余的逗号:
<td> <?php // 先创建空数组存储分类名称 $term_names = []; $term_list = wp_get_post_terms($pid, 'classtypecategory', array("fields" => "all")); foreach ($term_list as $newlist) { $term_names[] = $newlist->name; } // 用逗号加空格拼接数组元素并输出 echo implode(', ', $term_names); ?> </td>
方案二:循环中判断是否为最后一个元素(更灵活)
如果需要对分隔符做更个性化的调整,可以在循环里判断当前元素是不是最后一个,只给非最后一个元素加逗号:
<td> <?php $term_list = wp_get_post_terms($pid, 'classtypecategory', array("fields" => "all")); // 获取分类总数 $total_terms = count($term_list); foreach ($term_list as $index => $newlist) { echo $newlist->name; // 不是最后一个元素时才输出逗号 if ($index !== $total_terms - 1) { echo ', '; } } ?> </td>
为什么你之前的代码没生效?
你之前写的echo $aaa = $newlist->name.',';其实会给每个分类都加上逗号(包括最后一个),虽然能看到分隔,但会多一个多余的逗号。而且这种写法没必要赋值给$aaa,直接echo $newlist->name . ',';就行,但核心问题是没处理最后一个元素的多余逗号,所以推荐上面两种更规范的写法。
把上面任意一种代码替换你原来表格第二列的PHP代码,就能得到你想要的逗号分隔效果啦!
内容的提问来源于stack exchange,提问作者xuezheng
相关产品推荐
相关产品推荐

