星级评分系统计算

问题描述:

我正在为我的电子商务创建一个简单的评分系统。我有一个评论页面,用户可以在表格中评分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

,如果你想通过数组做你可以试试这个使用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

在数据库中,您可以保存总评分以及用户投了多少票。
不仅仅是计算的评价:

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

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