2017-03-02 4 views
2

データ属性内のプロジェクトをフィルタリングするために使用しているタグのリストがあります。各リスト項目の後にカンマを追加します(リスト内に1つ以上の項目がある場合のみ)

配列にsplit()を使用しましたが、リストに複数の項目がある場合は、コンマを区切り記号として追加する必要があります。理想的には、これをどのように働かせたいかです。

// Senario 1 – Single item 
<a href="#" data-tag="projects">Project Title</a> 

// Senario 2 – More than 1 item 
<a href="#" data-tag="product,commercial,housing">Project Title</a> 

私の現在のコード:

<?php foreach($project->tags()->split(',') as $tag): ?> 
    <a href="#" data-tag="<?php echo $tag; ?>">Project</a> 
<?php endforeach; ?> 

は、私はちょうど私が最初にした後、ループを完了したかどうかを確認するかどうかはわかりません。

ありがとうございました。

答えて

3

try implode機能。 manual

<a href="#" data-tag="<?php echo implode(',', $project->tags()) ?>">Project</a> 
+0

非常に短く、非常にすっきり道を。完全にimplode関数を忘れてしまった! +1 –

+0

プロジェクトタグの配列の長さをチェックするif文が必要です。長さが1の場合、implodeの必要はありません。タグをそのまま出力します。それ以外の場合はimplodeを使用します。 –

+0

@MasivuyeCokile arrayの値はimplodeが機能します。それは単に値を出力します。私は条件が –

0

あなたのアンカーにそれを追加する前に、まずあなたの文字列をビルドします。私より

<?php 
$result = ''; 
foreach($project->tags()->split(',') as $tag) { 

    $result .= sprintf('%s,', $tag);  
} 
//Will remove the last character of the string. 
$result = substr($result, 0, -1); 
?> 

<a href="#" data-tag="<?php echo $result; ?>">Project</a>'; 
関連する問題