实现阿拉伯数字与罗马数字互转换的PHP方法
< PHP
计算给定数量的罗马字符串的函数:
功能dec2roman($)
{
如果$ f不是实数,则返回false,
$ f大于或f为f或3999等于0:
如果(!is_numeric($)| | $ > 3999 | | $ < = 0)返回false;
罗马数字:
$罗马=数组(
m=1000,
d = 500,
C = 100,
50,
x = 10,
V=5,
我= 1
);
所需的罗马数字: /计算
foreach(罗马美元美元美元K = V)
如果(($ { $ } =楼层($ $ v / V))> 0)
$ $ = $;
字符串:
$ =;
foreach(美元$ k $ V)
{
为回报= $ V str_repeat <= 3($ K $ V):$ K $ old_k;
old_k美元= k;
}
替换一些空间案例并返回字符串:
返回str_replace(阵列('viv ','lxl ','dcd '),数组('ix ','xc ','cm '),美元的回报);
}
回声/ dec2romen(1981);
函数获取罗马字符串的十进制值:
功能roman2dec($str =)
{
返回false,如果至少没有/一个字母在字符串中:
如果(is_numeric($str))返回false;
罗马数字:
$罗马=数组(
m=1000,
d = 500,
C = 100,
50,
x = 10,
V=5,
我= 1
);
将字符串转换为罗马值的数组:
为($我= 0;$i < strlen(str);$我+ +)
如果(isset($罗马{ strtoupper($str {我})})))
美元价值{ } = { strtoupper罗马美元($str {我})};
数组的总和: /计算
美元= 0;
当(当前=当前($值))
{
下一个$(下一个值);
$ $ >当前$总和= + $下一步-当前+ 0 *下一步($值):$ =当前;
}
值:返回
退回美元;
}
回声/ roman2dec(IX);
>
希望本文能对大家的PHP程序设计有所帮助。