繁体   English   中英

需要调整PHP代码的帮助,除最后一个词外的所有术语后都需要逗号

[英]Need help adjusting PHP code, need commas after all terms except the last

我不太了解PHP,但是我正在尝试在下面调整此代码。 除了最后一个,我希望所有的条款后面都加一个逗号。 现在,输出如下所示:

观众: 学前班,高中,成人,

但是我需要它看起来像这样:

受众群体: 学前班,高中,成人

我意识到那里已经有类似的问题已经回答了这个问题,但是由于我对PHP毫无头绪,所以我不知道如何将这些解决方案与已有的代码结合起来。 有人可以帮忙吗?

提前致谢!

<?php 
$terms = get_terms( 'Audience' );
 if ( ! empty( $terms ) && ! is_wp_error( $terms ) ){
     echo '<p><strong>Audience:</strong> ';
     foreach ( $terms as $term ) {
       echo '' . $term->name . ', ';

     }
     echo '</p>';
 }
?>

您可以使用非常方便的功能implode功能来做到这一点:

echo implode(", ", $terms);

在循环期间将行保存到变量,然后在打印前删除最后一个字符。 不是最优雅的解决方案,但它可以工作

<?php 
$terms = get_terms( 'Audience' );
 if ( ! empty( $terms ) && ! is_wp_error( $terms ) ){
     echo '<p><strong>Audience:</strong> ';
     $len = count($terms);
     $i = 0;
     foreach ( $terms as $term ) {
       i++;
       echo '' . $term->name . ($i < $len  ? ', ' : '');

     }
     echo '</p>';
 }
?>

您可以使用trim() http://ar2.php.net/trim

$string = '';
$terms = get_terms( 'Audience' );
 if ( ! empty( $terms ) && ! is_wp_error( $terms ) ){
     $string .= '<p><strong>Audience:</strong> ';
     foreach ( $terms as $term ) {
       $string .= '' . $term->name . ', ';

     }
     $string .= "</p>";
     echo trim($string, ',');
 }
?>

您可以使用它从整个字符串的开头和结尾删除字符串。

您可以在foreach循环中进行计数;

$i = 1;
foreach ( $terms as $term ) {
    echo '' . $term->name;
    if ($i < count($terms)) {
        echo ', ';
    }
    $i++;
}

或者,您可以简单地将其全部加载到变量中,然后裁剪最后一个逗号并保留空格。

$output = '';
foreach ( $terms as $term ) {
    $output .= $term->name . ', ';
}
echo substr($output,0,-2);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM