我是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 ?>
这个打印出列表中的所有项目,不会删除最后一个逗号。有什么想法吗?
答案 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)
<?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)