2017-04-06 136 views
0

我已經創建了基於職位的級別系統。獲取每個級別的百分比

Level 1 = 1-25 posts 
Level 2 = 26-50 posts 
Level 3 = 51-250 posts, etc... 

我也想顯示一個進度條

通常你會這麼像這樣:

$author_posts = 15; 
$progress = ($author_posts * 100)/25; //(level 1) 

的進度百分比是那麼60%

但是,如果用戶已達到level 3,應該如何使用?

if($author_posts >= '250') { 
    $progress = '100'; 
} elseif($author_posts < '51') { 
    $progress = '0'; 
} else { 
    $progress = // what should I use here? 
} 


<div class="progress-bar" style="width:<?php echo esc_attr($progress); ?>%;"></div> 
+0

你能澄清你的百分比是什麼意思?是百分比直到下一個級別? –

+0

basic math =($ author_posts/250)* 100 – nogad

+0

它是當前級別(level3)內的百分比。或者等到3級被清除後,完成多少比例。我認爲它應該是這樣的,但我不知道:'$ progress($ author_posts * 100)/(250 - 51);' – kiarashi

回答

2

您包含的if塊意味着用戶處於0%進度,直到他們達到該級別的下限。那麼我們可以假設在這個邊界之下的以前的帖子沒有一個被違背了嗎?這意味着只有51到250個職位以百分比計,提供200個職位(含)。所以1個職位= 0.5%。

如果是這樣

$progress = round((($author_posts - 51)/200) * 100) 

51帖= 0%

52帖= 1%(四捨五入)

200帖= 75%

可重複使用的此公式的版本可能看起來像

$progress = round((($author_posts - $lower)/(($upper - $lower) + 1)) * 100) 

其中$upper$lower邊界在每個級別內重新定義。

+0

是的,這是完全正確的。在你的公式中添加了一個額外的''',導致了一個錯誤。 :) – kiarashi

+0

對不起,我沒有檢查編輯。更新。請接受,如果這回答你的問題。 – domwrap

+0

已接受。謝謝! – kiarashi

0

使用此:

if($author_posts >= '250') { 
    $progress = '100'; 
} elseif($author_posts < '51') { 
    $progress = '0'; 
} else { 
    $progress = (($author_posts - 50)/200) * 100; 
} 

<div class="progress-bar" style="width:<?php echo esc_attr($progress); ?>%;"></div>