2017-03-02 45 views
2

我有一個標記列表,用於過濾數據屬性中的項目。在每個列表項後面添加逗號,但前提是列表中有多個項目

我對我的數組使用了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

嘗試implode功能。 manual

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

很短,更整潔的方式。完全忘記了內爆功能! +1 –

+0

只需要一個if語句來檢查項目標籤數組的長度,如果長度爲1,那麼不需要內爆......只是打印標籤,因爲它是其他用途implode –

+0

@MasivuyeCokile即使只有一個數組中的值將會起作用。它只會輸出值。我認爲沒有必要,如果條件 –

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>'; 
相關問題