0

我有一个数字字符串,我需要从右边开始将其分成 2 组,但不超过 3 组。

要理解,这 3 组是“铜”、“银”和“金”,起始值是合成货币金额。例如:

10 -> 10 铜

1010 -> 10 银和 10 铜

102030 -> 10 金、20 银和 30 铜

1234567891010 -> 123456789 金 10 银 10 铜

如何在php中做到这一点?

4

2 回答 2

5

我只需将 String 转换为 int 就像这里一样,然后做一些算术运算。

设 x 为数字

r1 = x % 10000;
gold = x / 10000;
copper = r1 % 100;
silver = r1 / 100;

所以你有你的所有信息。

where%表示取

于 2012-12-24T15:06:52.913 回答
0

使用正则表达式:

$items = array('12', '1234', '123456', '1234567891234');

foreach ($items as $item)
{
    echo $item;

    preg_match('/^(?:(?<gold>\d*)(?<silver>\d\d))?(?<copper>\d\d)$/', $item, $result);

    foreach ($result as $key => $value)
    {
        if (is_int($key))
        {
            unset($result[$key]);
        }
    }
    var_dump($result);
}
于 2012-12-24T15:15:36.640 回答