Php – एक स्ट्रिंग में रोमन अंकों को पूर्णांकों से कैसे बदलें?


मेरे पास एक स्ट्रिंग है जिसमें एक (I) से दस (X) तक शब्द और एक या अधिक रोमन अंक हैं।
मुझे उन अंकों को पूर्णांकों से बदलने की आवश्यकता है।

मैंने यही प्रयास किया:

पीएचपी
$reps = [
'I' => 1,
'II' => 2,
'III' => 3,
'IV' => 4,
'V' => 5,
'VI' => 6,
'VII' => 7,
'VIII' => 8,
'IX' => 9,
'X' => 10
];

$str = "word word VII word ...";

$str2 = str_replace(array_keys($reps), $reps, $str);

लेकिन यह काम नहीं करता: “VII” को “7” के बजाय “511” से बदल दिया गया है।

मेरे द्वारा यह कैसे किया जा सकता है?

मैंने क्या प्रयास किया है:

पीएचपी
$reps = [
'I' => 1,
'II' => 2,
'III' => 3,
'IV' => 4,
'V' => 5,
'VI' => 6,
'VII' => 7,
'VIII' => 8,
'IX' => 9,
'X' => 10
];

$str = "word word VII word ...";

$str2 = str_replace(array_keys($reps), $reps, $str);

समाधान 2

जैसा कि प्रलेखित है PHP: str_replace – मैनुअल[^], str_replace() पहले से आखिरी तक मेल खाता है.
आप जो चाहते हैं उसे करने के लिए, आपको सभी खोज स्ट्रिंग्स को उनमें से किसी भी उपसर्ग से पहले रखना होगा, इसलिए एक आदेश

IV IX III II I VIII VII VI V X

कार्य करना चाहिए।

コメント

タイトルとURLをコピーしました