代码之家  ›  专栏  ›  技术社区  ›  Axel

如何计算每个给定评分的平均评分?

  •  0
  • Axel  · 技术社区  · 6 年前

    我按以下顺序拥有以下数据(产品名称->星星):

    Product 1 -> 5
    Product 2 -> 4
    Product 3 -> 3
    Product 4 -> 2
    Product 5 -> 3
    

    现在,我要计算每个给定评分的平均评分。例如:平均评级为5星级等等。。。

    $star = 0;
    foreach($rates as $rate) { 
       $star = $star + $rate->stars 
    }
    $avg = $star / count($rates);
    return $avg;
    

    结果是5。如果我把它乘以100,那么它就变成了 500%

    2 回复  |  直到 6 年前
        1
  •  0
  •   Lakhwinder Singh    6 年前

    在PHP中,您可以这样做来获得平均评级。

    $ratings = array:4 [▼
              0 => {#128 ▼
                +"product_name": "P1"
                +"stars": 5
              }
              1 => {#129 ▼
                +"product_name": "P2"
                +"stars": 3
              }
              2 => {#130 ▼
                +"product_name": "P3"
                +"stars": 2
              }
              3 => {#131 ▼
                +"product_name": "P4"
                +"stars": 4
              }
            ]
    

    function getStars($v) {
        return $v->stars;
    }
    $ratings = array_map("getStars",$rates);
    $score_count = count($ratings);
    $score_sum = array_sum($ratings);
    $mean_average = $score_sum / $score_count;
    var_dump($mean_average);exit;
    

    我想这对你有帮助。

        2
  •  -1
  •   Mahdi Shad    6 年前
    $star5 = $star4 = $star3 = $star2 = $star1 = 0;
    foreach($rates as $rate) {
        switch ($rate->stars) {
            case 1:
                $star1++;
                break; 
            case 2:
                $star2++;
                break; 
            case 3:
                $star3++;
                break; 
            case 4:
                $star4++;
                break; 
            case 5:
                $star5++;
                break; 
        }
    
    }
    $percent1 = ($star1 / count($rates)) * 100; // percent
    return $percent1;