Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php-如何根据条件反转数学方程?_Php_Math - Fatal编程技术网

php-如何根据条件反转数学方程?

php-如何根据条件反转数学方程?,php,math,Php,Math,我有一个独特而具体的情况 我有一个搜索,搜索排球运动员的数据。查询并获取所有数据后,它将运行以下操作: $priority_query = $wpdb->get_results(" SELECT MAX(CAST(value AS UNSIGNED)) FROM wp_bp_xprofile_data WHERE field_id = $field->id

我有一个独特而具体的情况

我有一个搜索,搜索排球运动员的数据。查询并获取所有数据后,它将运行以下操作:

$priority_query = $wpdb->get_results("
                    SELECT MAX(CAST(value AS UNSIGNED))
                    FROM wp_bp_xprofile_data
                    WHERE field_id = $field->id
                    ", ARRAY_N);

$field_max = $priority_query[0][0];

$priority_percentage = $field->priority / $priority_total;

$priority_rank = $priority_rank + round($priority_percentage * ($value_total/$field_max), 3);
}
$priority_rank = $priority_rank * 10;
也就是说,根据搜索返回的其他玩家的排名来计算玩家的排名。它工作得很好。然而,它本质上都是基于“越大越好”。所以它给了高度更高的排名,跳跃高度。诸如此类

现在,我又添加了两个基于速度的搜索条件(sprint)。它给最慢的人更高的排名,因为这是一个更大的数字。当为搜索选择一个新字段时,我需要它是相反的(越小越好)

我试过各种各样的方法,但都想不出来。我试着将查询从
MAX
改为
MIN
,但排名很高,仍然显示最慢的是最好的

有人知道我怎么做吗?任何帮助都将不胜感激,这让我发疯

多谢各位

编辑:

我不能有负数,因为排名显示出来了。此外,我不能有任何静态数字,因为玩家可以随时注册,并添加他们的统计数据,从而修改搜索结果

一位同事和我通过切换:
$value\u total/$field\u max
$field\u max/$value\u total
SELECT max
SELECT MIN
,然后我添加了一个条件语句来正确地计算它


但是,当您开始将这两种类型的标准混合在一起时,会出现一个小问题。它有点不稳定,但仍然按正确的顺序排列。

Hm。。。颠倒数学方程式。顺便说一句,这不是一个讽刺的评论,但是当你做一个特定的数学方程,比如一个加法,那么反过来就是一个减法。乘就是除。这就是您正在寻找或寻找的吗?向我们展示您尝试过的内容,并解释您不希望从代码中得到的内容。最简单的解决方案可能是将值设置为负值(
value*-1
)。值越高,结果越低。如果这只是为了排序顺序/排名,那就好了。如果你不想要或不能得到负数,你可以使用$someReallyHighNumber值来反转比例,甚至查询最大总体值,然后说出最大总体值。@Fred-ii-我没有讽刺地接受这一点,但是的,我尝试将所有运算符都改为相对的相反值。“一位同事和我通过切换:$value_total/$field_max到$field_max/$value_total,选择max到选择MIN,然后我添加了一个条件语句来正确地计算它。”---我有一种感觉,做某种形式的反转可以使它工作。很高兴听到你找到了解决方案。@Stumeysgti