PHP如何反转数字的比例


PHP how to invert a scale of numbers

假设我有一个数据集,每个元素都有一个相关的"分数"。

例如:
香蕉-5
苹果-3
梨-2

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

所以我最终会选择
香蕉-1
苹果-3
梨-4

我正在努力寻找一个不需要创建地图的优雅解决方案。

公式为$new = -$old + 6。只需将其与array_map 一起使用即可

尝试:

$initial = array(
  'Banana' => 5,
  'Apple' => 3,
  'Pear' => 2,
);
$max = max($initial);
foreach ($initial as &$val) {
  $val = $max + 1 - $val;
}
print_r($initial);

只需循环所有元素,然后计算新的"分数",如下所示:

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

其他刻度范围的公式:

$new = $rangeMax + $rangeMin - $old