根据评论计算5星评级

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了根据评论计算5星评级相关的知识,希望对你有一定的参考价值。

我的评论很好,而且评论很差。我需要从这篇评论中计算评分。

例:

  • Post 1有1条评论,还有2条不好的评论
  • Post 2有12条评论,还有5条评论不佳
  • Post 3有0条评论,还有0条评论

我如何计算评级?我需要获得5星。我需要得分不超过5星。我可能需要这个配方吗?

$score = ($good_reviews * $bad_reviews) / 5; //get rating stars

但我没有得到5或更少的数字。我怎么能正确地做到这一点?

答案

也许你想要这个:

 $rating = $good_reviews 
     ? intval ( 5.4 * $good_reviews / ( $good_reviews + $bad_reviews))
     : 0;

现在一步一步:

  • SUM := $good_reviews + $bad_reviews是所有评论的总和。
  • RATE := $good_reviews / SUM是评论总和的$ good_reviews的一般评级。结果在0.000到1.000的范围内。
  • 将它与5.4相乘可将范围扩展到0.000到5.400。允许一些5星评级的糟糕投票有点棘手。因子可以是介于5.000和5.9999999之间的每个数字。
  • intval()将数字从0减少到5(你的星星)。
  • ?:的替代方案避免了零误差的除法。
另一答案

那个公式不会给你你需要的东西。它只会与坏的相乘并除以5.例如((100 good * 20 bad)/ 5)= 400. 5出!

如果您需要最多五颗星得分,则需要使用范围。

计算好与坏之间的百分比,然后进行if检查。

例如:

$percentage = (($good - $bad) / $good) * 100;

if($percentage => 100) {
 //5 starts
} else if ($percentage < 100 && $percentage => 80) {
 //4 stars
} else if ($percentage < 80 && $percentage => 60) {
 //3 stars
} else if ($pecentage < 60 && $percentage => 40) {
 //2 starts
} else {
 //1 star
}

这只是一个基本的例子。有不同的方法来解决这个问题。您需要根据需要进行调整,并尝试它是否适合您。

我这么做很快,所以没有测试。请检查一下它是否适合你。我只想给你一个主意。

以上是关于根据评论计算5星评级的主要内容,如果未能解决你的问题,请参考以下文章

近年读了1065本书,挑出33本5星好书

使用表格的字体真棒 5 星评级

按 5 星评级排序的更好方法是啥?

使用 PHP、MySQL、Jquery 和 Ajax 创建 5 星评级系统

将用户提交的值转换为本地值

如何在Flash中制作愤怒的小鸟评分类型“三颗星评级”?