Código PHP:
Ver original
<?php function romanNumber($number){ // Array que contiene los valores númericos, tanto romanos como los regulares ); // rN -> romanNumber $rN = ''; // Convertir el valor a string (otra forma de hacerlo es $num = (string)$number; $num = "$number"; while(true){ //Solamente verificar los valores que sean mayores de 0 if($num[0] > 0){ foreach($arr as $key => $roman){ // Verifica que el valor del array sea mayor o igual al valor númerico if($roman[0] >= $num){ // Asigna el valor del array, si el número está entre los valores del array if($roman[0] == $num){ $rN .= $roman[1]; } // Si el valor del primer caracter es menor o igual a 3, asigna el valor del array anterior en donde // se encuentre en el bucle por la cantidad de veces que dé el primer caracter // Si el valor del primer caracter es igual a 4, asigna el valor del array anterior primero y el valor que // está en el momento del bucle elseif($num[0] == 4){ $rN .= $arr[$key - 1][1] . $roman[1]; } // Si el valor del primer caracter es menor o igual a 8, asigna el valor del array anterior y del que // está antes del anterior, por la cantidad de veces del residuo de $num[0] - 5 // Si el valor del primer caracter es igual a 9, asigna el valor del array del que está antes del anterior // y del valor que está en el momento del bucle elseif($num[0] == 9){ $rN .= $arr[$key - 2][1] . $roman[1]; } // Evitar que continúe ya que encontró el valor break; } } } // Quita el primer caracter del valor de lo que esté en la variable $num al momento, // y así continúa con el proceso hasta que no queda valor //Verifica si ya no existe algún valor en la variable $num } return $rN; }