亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

根據評論計算5星的評分

根據評論計算5星的評分

PHP
catspeake 2021-04-26 12:13:56
我的評論很好,而我的評論不好。我需要根據此評論計算評分才能發布。例子:第1則評論有1條好評論,而2條評論很差第2個帖子有12條好評論和5條差評第3則評論有0條好評論和0條差評如何計算評分?我需要郵政獲得5星。我需要得分不超過5星??赡芪倚枰@個公式嗎?$score = ($good_reviews * $bad_reviews) / 5; //get rating stars但是我沒有得到5個或更少的數字。我怎樣才能正確地做到這一點?
查看完整描述

2 回答

?
牛魔王的故事

TA貢獻1830條經驗 獲得超3個贊

也許您想要這樣:


 $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(您的星星)。

  • 替代方法?:避免了零誤差除法。


查看完整回答
反對 回復 2021-05-07
?
一只名叫tom的貓

TA貢獻1906條經驗 獲得超3個贊

該公式無法滿足您的需求。它只會乘以乘以乘以乘以5,然后除以5。例如,(((100乘以20 * 20乘以壞)/ 5)=400。從5中算出!


如果您需要得分不超過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

}

那只是一個基本的例子。有多種方法可以解決此問題。您需要根據需要進行調整,然后嘗試是否適合您。


我確實很快完成了此操作,因此沒有對其進行測試。請檢查并確定它是否適合您。我只是想給你一個主意。


查看完整回答
反對 回復 2021-05-07
  • 2 回答
  • 0 關注
  • 427 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號