2014-11-04 155 views
1

我正在爲我的電子商務創建一個簡單的評分系統。我有一個評論頁面,用戶可以在表格中評分1-5。我可以節省費率,但我不知道該如何計算。這是我的示例數據。星級評分系統計算

Array 
(
    [rate_1] => 0 // total user voted for rate 'boo' 
    [rate_2] => 1 // total user voted for rate 'more improvement' 
    [rate_3] => 0 // total user voted for rate 'its ok' 
    [rate_4] => 2 // total user voted for rate 'i recommend this' 
    [rate_5] => 4 // total user voted for rate 'i highly recommend this' 
) 

這裏有一個簡單的圖形:

rate_1 = Boo 
rate_2 = More Improvement 
rate_3 = It's OK 
rate_4 = I recommend this 
rate_5 = I highly recommend this 

我想要的是讓每一個匯率的百分比。選擇'Boo'等的百分比是多少等。

最後得到所有這些的總結百分比。

獲得每個費率的百分比的原因是我想創建一個類似於Google Play商店中的進度率。

+0

是的,在我的數據庫中,我可以保存有多少用戶以特定比率投票。但我還需要的是按照每種費率獲得他們的優勢,並獲得所有費率的總計百分比。 – Jerielle 2014-11-04 07:26:52

+0

這是從我的PHP通過我的數據庫生成的結果 – Jerielle 2014-11-04 07:30:36

回答

2

,如果你想通過數組做你可以試試這個使用array_sum

($your_array_name['rate_1']/array_sum($your_array_name))*100; 

值解釋

$your_array_name['rate_1']==rate_1

array_sum($your_array_name)==此號碼投票種姓會產生票的總數。如果你已經有總票數。只需簡單地將array_sum($your_array_name)替換爲總投票

+0

在我的rate_5我已經有了總共4所以這意味着'(4/array_sum(rate_5))* 100'? – Jerielle 2014-11-04 07:38:10

+0

好的,謝謝,我會嘗試。 :) – Jerielle 2014-11-04 07:43:37

+0

這個過程是爲了獲得個人比率或整體? – Jerielle 2014-11-04 07:45:26

1

在數據庫中,您可以保存總評分以及用戶投了多少票。
不僅僅是計算的評價:

$perProduct = product.totalRating/product.totalVotes 
$totalRatingOfProduct = product.totalRating/SUM(product.totalVotes) 
1

N是單一產品給予評級的總數。

爲您的網站的樣本數據:

Array 
(
    [rate_1] => 0 // total user voted for rate 'boo' 
    [rate_2] => 1 // total user voted for rate 'more improvement' 
    [rate_3] => 0 // total user voted for rate 'its ok' 
    [rate_4] => 2 // total user voted for rate 'i recommend this' 
    [rate_5] => 4 // total user voted for rate 'i highly recommend this' 
) 

N0+1+0+2+4 == 7

百分比rate_1(BOO)將(votesOfRate1/N)*100

那麼,誰投用戶的數量將(0/7)*100,這是0%

百分比rate_2(更多改進)將(votesOfRate2/N)*100

那麼,誰投更多改進用戶的數量將(1/7)*100,這是14.29%

依此類推。

如果要計算平均得分爲一個單一的產品,做一個加權求和平均:

AverageRating = ((1*votesOfRate1)+(2*votesOfRate2)+(3*votesOfRate3)+(4*votesOfRate4)+(5*votesOfRate5))/N

+0

謝謝,我會嘗試。它會幫助我很多。 :) – Jerielle 2014-11-04 07:28:59

+0

是N是總投票?我已經有了.. – Jerielle 2014-11-04 07:33:29

+0

是的,''N'是單個產品的總票數,不管評分如何。 – 2014-11-04 07:37:44