Grundsätzlich versuche ich eine Funktion zu erstellen, die eine römische Zahl in eine ganze Zahl verwandelt.Römische Zahl zu Integer-Funktion
Ich habe ein Array:
$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
];
Ich bin ziemlich neu in PHP so bin ich immer noch auf dem Weg zu gewöhnen denken so beachten Sie bitte, lernen, ich bin immer noch :)
hier ist meine Funktion - oder das, was ich bisher:
//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;
}
ich habe stundenlang auf diesen gewesen und würde ebenso wie die das Licht der Welt es sehen würde jede Beratung sehr geschätzt.
, wenn ich es in der Kommandozeile mit
echo romanToInteger('I');
bekomme ich nur zurück 0 und ich denke, es ist etwas mit meinem intval zu tun?
Sorry wieder für ein Noob, Hilfe geschätzt, obwohl oder irgendwelche Hinweise! :)
Dank! Nicht sicher, warum ich daran dachte, es jetzt dort zu haben ... Danke nochmal, ich verstehe es jetzt :) –
@CalvinTaylor sicher froh, dass das geholfen hat – Ghost
@Ghost 'romanToInteger ('IV');' das gibt 10 in Ihrem aktualisierten Codepad einfügen . Das sollte 4 sein. Bei römischen Methoden wird das "I" von "V" subtrahiert, wenn der erste Wert niedriger als der nächste ist. Im Gegensatz zu 'VI' wäre 6. –