PHP修剪数组中的最后一个字符

时间:2012-06-25 13:51:11

标签: php xml arrays wordpress list

我是PHP的新手,我所要做的就是获取所有选定的值并打印出来用逗号分隔它们,但是,我需要在列表中的最后一项之后删除最后一个逗号。

<?php $favoriteFruit = get_post_meta($post->ID, 'Favorite Fruit', false) ?>
<?php if ($favoriteFruit != null): ?>
    <attribute key="FavoriteFruit" 
               value="<?php foreach($favoriteFruit as $fruit){
                                    echo $fruit.',';
                            } ?>"
               />
<?php endif ?>

这个打印出列表中的所有项目,不会删除最后一个逗号。有什么想法吗?

4 个答案:

答案 0 :(得分:5)

有两种方法可以做到这一点。最简单的方法是使用implode(),更改此内容:

foreach($favoriteFruit as $fruit){echo $fruit.',';}

要:

echo implode( ',', $favoriteFruit);

另一种方法是使用rtrim()修剪字符串右边的逗号,但由于你有一个数组,你必须自己形成字符串,如下所示:

$str = '';
foreach($favoriteFruit as $fruit){ $str .= $fruit .',';} 
echo rtrim( $str, ',');

话虽如此,我建议使用implode()因为它简单,简单,直接。

答案 1 :(得分:2)

如何简单地使用逗号作为分隔符来破坏数组:

<?php echo implode(',',$favoriteFruit);?>

只是为了好玩:因为人们指出你可以保持循环并使用rtrim,并且-thankfuly,建议反对它。这是另一个不必要的复杂和荒谬的方法,也是有效的:

echo vsprintf('%s'.str_repeat(',%s',(count($favoriteFruit)-1)),$favoriteFruit);
//or, the other way round:
echo vsprintf(str_repeat('%s,',(count($favoriteFruit)-1)).'%s',$favoriteFruit);

无论您做什么,都不要使用此代码。

答案 2 :(得分:1)

您可以使用implode()代替foreach()

<?php $favoriteFruit = get_post_meta($post->ID, 'Favorite Fruit', false) ?>
<?php if ($favoriteFruit != null): ?><attribute key="FavoriteFruit" value="<?php echo implode(",", $favoriteFruit);?>" /><?php endif ?>

我改变了这个:

<?php foreach($favoriteFruit as $fruit){echo $fruit.',';}?>

对此:

<?php echo implode(",", $favoriteFruit);?>

答案 3 :(得分:0)

您可以使用imlpode功能(请参阅http://php.net/manual/en/function.implode.php) 或join(它实际上是implode的同义词)(参见http://www.php.net/manual/en/function.join.php