PHP如何反转数字的比例

时间:2012-01-18 09:49:11

标签: php

假设我有一个数据集,每个元素都有一个关联的“得分”。

例如:
香蕉 - 5
Apple - 3
梨 - 2

我想反转比例,以便:
所有5个成为1的 所有4都成为2的 所有3都成为3的 所有2都成为4的 所有1都变为5的

所以我最终得到了 香蕉 - 1
Apple - 3
梨 - 4

我很难找到一个不涉及创建地图的优雅解决方案。

4 个答案:

答案 0 :(得分:3)

公式为$new = -$old + 6。只需将其与array_map

一起使用即可

答案 1 :(得分:1)

尝试:

$initial = array(
  'Banana' => 5,
  'Apple' => 3,
  'Pear' => 2,
);

$max = max($initial);
foreach ($initial as &$val) {
  $val = $max + 1 - $val;
}

print_r($initial);

答案 2 :(得分:0)

只需遍历所有元素,然后像这样计算新的“得分”:

$score_new = ($score_old - 6) * (-1);

答案 3 :(得分:0)

其他比例范围的公式:

$new = $rangeMax + $rangeMin - $old