0

スペースで区切られた文字列としてデータベースに保存した一連のタグがあります。それらをphpでエコーアウトすると、それらを展開し、forループでループします。

私のコードは次のようになります。

$tags = explode(' ',$c['art_tags']); for($i=0;$i<count($tags);$i++){ echo "<a href='#'>".$tags[$i]."</a>".", ";}

これまでのところ、implode を使用するための回答を含む投稿しか見たことがありませんが、implode を使用すると、文字列になるため、個々のタグをクリックすることができなくなります..

そのため、各タグのタグ配列をループしているときに、最後のコンマを取り除く方法を見つけようとしています。最終的には次のようになります。

<a href="">tag1</a>,<a href="">tag2</a>,<a href="#">tag3</a> 
4

3 に答える 3

2

array_map()+を使用implode():

<?php
$tags = explode(' ', $c['art_tags']);
$tags = array_map(function($tag){ return '<a href="#">' . $tag . '</a>'; }, $tags);

echo implode(', ', $tags);
?>

作業例 @ PhpFiddle

于 2013-05-16T03:02:38.183 に答える
1

コンマをforループのエコーの先頭に変更し、最初のタグかどうかを確認する条件を実装するだけです...次のように:

<?php
$c='bob sally butch jim';

$tags = explode(' ',$c); 

for($i=0;$i<count($tags);$i++)
    { 
        if($i === 0)
            {
                echo "<a href='#'>" . $tags[$i] . "</a>";
            }

        else
            {
                echo ", <a href='#'>" . $tags[$i] . "</a>";
            }
    }
?>
于 2013-05-16T03:11:22.810 に答える
0

trim()または使用できますrtrim();

于 2013-05-16T03:00:37.727 に答える