Простая функция, которая конвертирует валюты из одной в другую с учётом номинала.
* Конвертирует одну валюту в другую
* @param int $sum Сумма
* @param string $from Исходная валюта
* @param string $to Валюта на выходе
* @return int|boolean Результат конвертации
*/
function converter($sum, $from, $to)
{
//Массив с курсами валют
$currency = array(
'USD' => array(
//Номинал валюты
'nominal' => 1,
//Курс по отношению к рублю
'value' => 33.8161,
),
'EUR' => array(
'nominal' => 1,
'value' => 45.8242,
),
'BYR' => array(
'nominal' => 10000,
'value' => 35.85,
),
'RUB' => array(
'nominal' => 1,
'value' => 1,
),
'AMD' => array(
'nominal' => 1000,
'value' => 85,4335,
),
);
//Если валюты равны, то просто возвращаем сумму
if ($from == $to)
{
return $sum;
}
//Если не существует элемента массива с индексом $from или $to
if (!isset($currency[$from]) || !isset($currency[$to]))
{
return false;
}
//Считаем и возвращаем сконвертированную сумму
return ($sum * $currency[$from]['value'] / $currency[$to]['value'])
/ $currency[$from]['nominal'] * $currency[$to]['nominal'];
}