PHP Function To Turn Integer To Roman Numerals

Use the following function to change any integer into a string containing the integer value as a Roman Numeral.

function integerToRoman($integer)
 // Convert the integer into an integer (just to make sure)
 $integer = intval($integer);
 $result = '';
 // Create a lookup array that contains all of the Roman numerals.
 $lookup = array('M' => 1000,
 'CM' => 900,
 'D' => 500,
 'CD' => 400,
 'C' => 100,
 'XC' => 90,
 'L' => 50,
 'XL' => 40,
 'X' => 10,
 'IX' => 9,
 'V' => 5,
 'IV' => 4,
 'I' => 1);
 foreach($lookup as $roman => $value){
  // Determine the number of matches
  $matches = intval($integer/$value);
  // Add the same number of characters to the string
  $result .= str_repeat($roman,$matches);
  // Set the integer to be the remainder of the integer and the value
  $integer = $integer % $value;
 // The Roman numeral should be built, return it
 return $result;

To run the code just give the function an integer. Here are some examples.

echo integerToRoman(1).'<br>';
echo integerToRoman(42).'<br>';
echo integerToRoman(123).'<br>';
echo integerToRoman(4576).'<br>';
echo integerToRoman(1979).'<br>';

This will print out the following.


You can also give the function a string.

echo integerToRoman('765').'<br>';

Will print out DCCLXV.


Nice work.....Thanks
Nice work! I asked the internet and lo, there you were.
Thanks! I'm really happy you found it useful :)
Philip Norton

Hey thanks for this man!


Add new comment

The content of this field is kept private and will not be shown publicly.
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.
3 + 8 =
Solve this simple math problem and enter the result. E.g. for 1+3, enter 4.