PHP将人民币中中文大写转化为金额数字代码
时间: 2024-09-24 19:08:21 浏览: 37
PHP中可以使用正则表达式和数组映射的方式将中文的大写金额转换为阿拉伯数字。以下是一个简单的示例代码:
```php
function cnyToNum($cny) {
// 中文大写金额对应的数字和单位数组
$chineseMap = [
'零' => '0',
'壹' => '1',
'贰' => '2',
'叁' => '3',
'肆' => '4',
'伍' => '5',
'陆' => '6',
'柒' => '7',
'捌' => '8',
'玖' => '9',
'拾' => '',
'佰' => '00',
'仟' => '000',
'万' => '0000',
'亿' => '00000000'
];
// 删除逗号
$cny = str_replace(',', '', $cny);
// 正则匹配并替换
foreach ($chineseMap as $chinese => $num) {
$cny = preg_replace("/" . preg_quote($chinese, '/') . "*/", $num, $cny);
}
// 移除多余的单位
while (strpos($cny, '拾') !== false || strpos($cny, '佰') !== false || strpos($cny, '仟') !== false) {
$cny = preg_replace('/十|百|千/', '', $cny);
}
return floatval($cny); // 转换为浮点数
}
// 使用示例
$cnyStr = '壹拾陆元伍角整';
echo cnyToNum($cnyStr); // 输出结果:16.05
阅读全文