星级评分系统计算
问题描述:
我正在为我的电子商务创建一个简单的评分系统。我有一个评论页面,用户可以在表格中评分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商店中的进度率。
答
,如果你想通过数组做你可以试试这个使用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)
替换为总投票
答
在数据库中,您可以保存总评分以及用户投了多少票。
不仅仅是计算的评价:
$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'
)
N
将0+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
是的,在我的数据库中,我可以保存有多少用户以特定比率投票。但我还需要的是按照每种费率获得他们的优势,并获得所有费率的总计百分比。 – Jerielle 2014-11-04 07:26:52
这是从我的PHP通过我的数据库生成的结果 – Jerielle 2014-11-04 07:30:36