根据评论计算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星评级的主要内容,如果未能解决你的问题,请参考以下文章