В основном я пытаюсь создать функцию, которая превратит римскую цифру в целое число.Roman Numeral to integer function
У меня есть массив:
$roman_numerals=[
'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
];
Я довольно новыми для PHP, так что я все еще привыкаю к пути думаю поэтому, пожалуйста, имейте в виду, я все еще учусь :)
вот моя функция - или то, что я до сих пор:
//Array
function romanToInteger($key)
{
$roman_numerals=[
'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
];
$roman = intval($key);
$result = 0;
foreach ($roman_numerals as $key => $value) {
while (strpos($roman, $key) === 0) {
$result += $value;
$roman = substr($roman, strlen($key));
}
}
var_dump($roman); //test
echo $result;
}
я был на этом в течение нескольких часов и будет так же, как увидеть свет этого, любой совет будет весьма признателен.
, когда я запустить его в командной строке с
echo romanToInteger('I');
я просто получить возвращенного 0 и я думаю, что его что-то делать с моим intval?
Извините за то, что вы новичок, помогите оценить хотя или любые указатели! :)
Спасибо! Не слишком уверен, почему я думал о том, чтобы иметь его там сейчас ... спасибо еще раз, я понимаю это сейчас :) –
@CalvinTaylor уверен, что это помогло – Ghost
@Ghost 'romanToInteger ('IV');' который выводит 10 в вашу обновленную палочку codepad , Это должно быть 4. В римских методах «I» вычитается из «V», если первое значение ниже следующего. В отличие от «VI» было бы 6. –