如何计算详细评级的平均评分?

时间:2017-07-28 07:04:47

标签: php

我的代码是这样的:

<?php 
    $rating = 5;
    $rating_detail = '{"3":"1","4":"2"}';
    $array_data = json_decode($rating_detail, true);
    if(array_key_exists($rating, $array_data)) {
        $value = $array_data[$rating];
        if ($value !== false) {
            $array_data[$rating] = (string)((int)$value + 1);
        }
        $rating_detail = json_encode($array_data);
    }
    else {
        $data = substr($rating_detail, 0, -1);
        $rating_detail = $data.',"'.$rating.'":"1"}';
    }

    echo '<pre>';print_r($rating_detail);echo '</pre>';die();
?>

如果代码运行,结果如下:

  

{ “3”: “1”, “4”: “2”, “5”: “1”}

商店的详细评级

注意:

3 =评级3,1 =给出评级的用户数量:1

4 =评级4,2 =给出评分的用户数量:2

5 =评级5,1 =给出评分的用户数量:1

如何计算详细评级的平均评分?

因此,商店详细评级的平均评级在1 - 5之间

更新

所以从这里开始:

  

{ “3”: “1”, “4”: “2”, “5”: “1”}

根据该评级的详细信息,如何计算商店的评级?

1 个答案:

答案 0 :(得分:2)

试试这个

$rating = 5;
$rating_detail = '{"3":"1","4":"2"}';
$rating_detail = json_decode($rating_detail, true);
if(array_key_exists($rating, $rating_detail)) {
        $rating_detail[$rating] = (string)((int)$rating_detail[$rating] + 1);
}
else {
    $rating_detail[$rating]="1";
}
$totalStar=$totalRate=0;
foreach ($rating_detail as $key=>$value){
    $totalStar+=$key*$value;
    $totalRate+=$value;

}
$average=$totalStar/$totalRate;

它给出了

enter image description here