猿问

根据评论计算5星的评分

我的评论很好,而我的评论不好。我需要根据此评论计算评分才能发布。

例子:

  • 第1则评论有1条好评论,而2条评论很差

  • 第2个帖子有12条好评论和5条差评

  • 第3则评论有0条好评论和0条差评

如何计算评分?我需要邮政获得5星。我需要得分不超过5星。可能我需要这个公式吗?

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

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


catspeake
浏览 392回答 2
2回答

牛魔王的故事

也许您想要这样: $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(您的星星)。替代方法?:避免了零误差除法。

一只名叫tom的猫

该公式无法满足您的需求。它只会乘以乘以乘以乘以5,然后除以5。例如,(((100乘以20 * 20乘以坏)/ 5)=400。从5中算出!如果您需要得分不超过5星,则需要使用范围。计算好坏之间的百分比,然后进行if检查。例如:$percentage = (($good - $bad) / $good) * 100;if($percentage => 100) {&nbsp;//5 starts} else if ($percentage < 100 && $percentage => 80) {&nbsp;//4 stars} else if ($percentage < 80 && $percentage => 60) {&nbsp;//3 stars} else if ($pecentage < 60 && $percentage => 40) {&nbsp;//2 starts} else {&nbsp;//1 star}那只是一个基本的例子。有多种方法可以解决此问题。您需要根据需要进行调整,然后尝试是否适合您。我确实很快完成了此操作,因此没有对其进行测试。请检查并确定它是否适合您。我只是想给你一个主意。
随时随地看视频慕课网APP
我要回答