2012-01-18 2 views
2

私はデータセットを持っていると言えば、各要素には関連する「スコア」があります。PHP数字のスケールを逆にする方法

例:
バナナ - 5
アップル - 3
梨 - 2

私はなるようにスケールを反転したい:すべての4の2の
すべての3者になる
すべての5の1のになる
3になる
2が4になります
すべて1が5になります

だから私は
バナナで終わるだろう - 1
アップル - 3
梨 - 4

私はマップを作成含まない優雅な解決策を見つけるのに苦労しています。

+2

を ''エコー(6- $ I)の何が悪いのでしょうか? :) – Vyktor

答えて

0

だけのすべての要素をループし、計算し、このような新しい「スコア」:

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

てみて、それを使用します。

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

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

print_r($initial); 
0

他のスケールのための式は、範囲:

$new = $rangeMax + $rangeMin - $old 
関連する問題