2016-12-15 76 views
-2

我正在爆炸從我的數據庫中提取的一些信息。目前它列出了所有的「興趣/標籤」。有沒有辦法限制它只顯示4?然後添加一個+(剩餘量)使用PHP爆炸函數的限制結果

例如:

"Interested in : Cats, Dogs, Monkeys (+5)" 

<?$tags = explode(',', $usr->interests); 

foreach($tags as $tag): 

?> 

<? echo "<span>$tag</span>,"; 
    endforeach; ?> 

由於提前, 傑米

+0

*剩餘金額* - 金額,標籤? – RomanPerekhrest

回答

0

可以使用用於代替

for($i=0;$i<4;$i++) : 
if (isset($tags[$i])) 
echo "<span>" . $tags[$i] . "</span>" 
endfor; 

if (count($tags) > 4) 
echo "(+" . count($tags) - 4 . ")"; 

或者您可以使用array_slice函數將數組分成兩個數組 - 首先是長度爲4的數組,然後是所有其他元素,然後使用這2個數組。 http://php.net/manual/en/function.array-slice.php

1

explode functionlimit參數,你可以使用它:

<?php 
// Obtain the remaining tags, if the tags count is more than 4 
$totalTags = (substr_count($usr->interests, ",") + 1); 
$remainingTags = $totalTags > 4 ? $totalTags - 4 : false; 

// Obtain the first for 4 tags 
$tags = explode(',', $usr->interests, 4-$totalTags); // (third parameter, is the limit) 

// Initialize a text buffer 
$textBuffer = ""; 

foreach($tags as $tag){ 
    // Feed the buffer 
    $textBuffer .= "<span>$tag</span>,"; 
} 

// Remove last comma 
$textBuffer = substr($textBuffer, 0, strlen($textBuffer)-1); 

// Insert remaining counter into the buffer 
if($remainingTags){ 
    $textBuffer = $textBuffer . " (+". $remainingTags .")"; 
} 

// Use your variable wherever you want 
echo $textBuffer; 

?> 

注意的爆炸Limit參數應該是一個負數函數返回只有前4個標籤。有關更多詳細信息,請參閱上述鏈接。