根据平均得分,评论数和价格对产品进行排名

时间:2019-09-18 12:43:23

标签: php sorting

我已经在https://math.stackexchange.com上问过,但是他们说我最好可以在这里问。我得到了以下数据:

$average_score
$max_score = 5
$min_score = 0.5
$total_reviews
$price

我没有数据,其中有多少条“好”评论或“坏”评论。就是您可以给的平均,总分,最低和最高分。

我收到这样的查询:

<?php
return array(
    'post_type' => 'page',
    'post_status' => 'publish',
    'posts_per_page' => 10,
    'facetwp' => true,
    'meta_query' => array(
        'featured_sort' => array(
            'key' => 'featured',
            'compare' => 'EXISTS'
        ),
        array(
            'key'       => 'package-or-service',
            'value'     => array('hosting'),
            'compare'   => 'IN',
        ),
        'price_sort' => array(
            'key' => 'price',
            'type' => 'DECIMAL(10,2)',
            'compare' => 'EXISTS'
        ),
        'average_score_sort' => array(
            'key' => 'average_score_count',
            'type' => 'DECIMAL(10,2)',
            'compare' => 'EXISTS'
        ),
    ),
    'orderby' => array(
        'featured_sort' => 'DESC',
        'average_score_sort' => 'DESC',
        'price_sort' => 'ASC'
    )
);

average_score_sort的计算方式如下:

$average_total = $average_score * $count_reviews / 100;

我也尝试过这种方法,仅用于平均排名和评论数(不包括价格)

$average_total = ($count_reviews/5)/($count_reviews/$average_score)*($count_reviews);

但是基本上是一样的。

我知道这不是最好的方法,但是我不知道如何以一种好的方式对其进行排序。我知道有类似Wilson Interval的东西,但不知道在这种情况下如何使用它,还不包括价格作为排序因子。

现在对结果进行这样的排序(公司有多种产品):

  1. 公司1产品-价格4,99-10条评论-平均5
  2. 公司1产品-价格9,99-10评论-平均5
  3. 公司1产品-价格19,99-10条评论-平均5
  4. Company 2产品-价格1,00-9评论-平均4.7
  5. Company 2产品-价格2,00-9评论-平均4.7
  6. Company 2产品-价格4,00-9评论-平均4.7
  7. Company 2产品-价格8,00-9条评论-平均4.7
  8. Company 2产品-价格16,00-9评论-平均4.7
  9. Company 2产品-价格32,00-9条评论-平均4.7

如您所见,这不太公平,我想根据平均值和评论数量以及价格从低到高对结果进行排序。这样它会更像这样:

编辑

  1. 公司1产品1-价格0,45-507条评论-平均4.9
  2. 公司2产品1-价格1,00-151条评论-平均4.7
  3. 公司2产品2-价格2,00-151条评论-平均4.7
  4. 公司3产品1-价格2,00-973条评论-平均4.6
  5. 公司4产品1-价格2,00-344条评论-平均4.5
  6. 公司1产品2-价格4,49-507条评论-平均4.9
  7. 公司5产品1-价格3,99-97条评论-平均4.9
  8. 公司6产品1-价格2,50-9评论-平均4.4
  9. 公司2产品3-价格4,00-151条评论-平均4.7

到目前为止我得到的数据有可能吗?

0 个答案:

没有答案