Всегда одна операция: коэффициент относительно одного параметра give или get.
1$ => 60руб (give).
1рубль => 1/60$ => 0,0166667(get)
Применительно к вашему примеру:
give get
1 2.3
1 1/2.3
gist<?
function exchange($amount,$give,$get) {
$exchanges=[
'USD:RUB'=>60,
'RUB:USD'=>1/60,
];
$in=[$give.':'.$get=>$amount];
$key=key($in);
if ($amount>0 && $exchanges[$key]) {
$out=$exchanges[$key]*$in[$key];
return $out.' '.explode(':',$key,2)[1];
} else return false;
}
if ($out=exchange(2,'USD','RUB')) echo $out;
else echo 'Обмен невозможен!';
?>