How to convert an integer to Roman numerals in PHP

1 Answer

0 votes
<?php

function intToRoman(int $num): string {
    // Define values and their corresponding Roman numerals
    $values  = [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1];
    $symbols = ["M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"];

    $roman = "";

    // Loop through values and subtract while possible
    for ($i = 0; $i < count($values); $i++) {
        while ($num >= $values[$i]) {
            $num -= $values[$i];
            $roman .= $symbols[$i]; // append symbol
        }
    }

    return $roman;
}

echo intToRoman(1994) . PHP_EOL; 
echo intToRoman(196)  . PHP_EOL; 
echo intToRoman(9)    . PHP_EOL; 



/*
run:

MCMXCIV
CXCVI
IX

*/

 



answered Dec 1, 2025 by avibootz
...