Php 在foreach上添加分隔符的计数器

Php 在foreach上添加分隔符的计数器,php,wordpress,foreach,Php,Wordpress,Foreach,我有一个foreach可以在Wordpress上的一篇文章中添加术语,这篇文章非常有效。代码如下: <h3> <?php foreach($terms as $term) {?> <?php echo $term->name;?> <?php } ?> </h3> 但是,我需要添加一个计数器,以便如果中有多个术语,它会在它们之间添加一个/。例如: <h3>Term Name</h3> <

我有一个foreach可以在Wordpress上的一篇文章中添加术语,这篇文章非常有效。代码如下:

<h3>
<?php foreach($terms as $term) {?>
    <?php echo $term->name;?>
<?php } ?>
</h3>

但是,我需要添加一个计数器,以便如果
中有多个术语,它会在它们之间添加一个/。例如:

<h3>Term Name</h3>
<h3>Term Name / Term Name / Term Name</h3>
术语名称
术语名称/术语名称/术语名称
这是代码,我到目前为止,但它不工作

        <?php
        $i = 1;
        foreach($terms as $term) {

        if($i == 1){ 
         echo ' / '.$term->name;
        } else { 
            echo $term->name;
        }   
        $i++;  
        } ?>

请尝试下面的代码

<?php $terms = array_values($terms); 
if( sizeof($terms) > 1){ ?>
        <h3><?php echo  implode(' / ', array_map(function($term) { return $term->name; }, $terms)); ?></h3>
<?php }else{ $term = $terms[0]; ?>
            <h3>echo $term->name;</h3>
<?php } ?>

echo$term->name;

您不需要使用计数器。只需将每个
$term->name
放入一个数组,并将其内爆:

echo内爆('/',数组_映射(函数($term){return$term->name;},$terms))


以下是工作解决方案:)



您的$i是第一个循环的一个,但您需要/在第一次通过后,尝试$i==2您不需要在末尾使用
您的代码有问题。首先,问号(?)出现在if和else语句中,您犯了一个逻辑错误。如果$i等于1,那么您不需要/,您需要/on-else语句。祝您自己的代码好运。如何删除尾随斜杠?Thsi是一个简单的代码,不使用任何内置函数:)
<?php
    $i = 1;
    foreach($terms as $term) {  
        if($i > 1) { 
            echo ' / '.$term->name;
        } else { 
            echo $term->name;
            $i++; 
        } 
    }
?>
 <?php 
    $terms = array("Term One","Term Two","Term Three","Term Four");
    $i = 1;
    $result="";
    foreach($terms as $term)
    {
        if($i==1)
         {
            $result=$result.$term.' ';
            $i++;   
          } 
        else
            {               
                $result=$result."/".' ';
                $result=$result.$term.' ';
            }       

    }
   echo $result;    
 ?>