-1

私は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

4 に答える 4

5

これには 2 つの方法があります。最も簡単な方法はimplode()、これを変更して を使用することです。

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

に:

echo implode( ',', $favoriteFruit);

rtrim()別の方法は、文字列の右側からコンマを削除するために使用することですが、配列があるため、次のように自分で文字列を形成する必要があります。

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

そうは言っても、implode()簡単、シンプル、そして簡単なので、使用することをお勧めします。

于 2012-06-25T13:53:16.197 に答える
2

コンマを区切り文字として使用して、単に配列を内破するのはどうですか:

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

楽しみのために: ループを保持して , を使用できると人々が指摘したのでrtrim、ありがたいことに、使用しないようにアドバイスしました。不必要に複雑でばかげた別のアプローチも有効です。

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);

何をするにしても、このコードを使用しないでください。

于 2012-06-25T13:54:06.190 に答える
1

foreach( )の代わりにimplode()を使用できます。

<?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);?>
于 2012-06-25T13:53:12.753 に答える
0

imlpode関数(http://php.net/manual/en/function.implode.phpを参照)またはjoin(実際にはの同義語implode)(http://www.php.net/manual/en/functionを参照)を使用できます。 join.php

于 2012-06-25T13:55:16.230 に答える