今天遇到个php中数字转大写的小需求,就是将数字'0123'转成"零一二三",一开始以为php中有实现此需求的内置函数,结果查了半天没找到,就索性自已写一个吧。注意,这里只是实现单个数字与之对应的大写或汉字的转换方式,并不是转成多少千多少百的那种数字的转换方式。php 将数字123转成一二三的方法我们可以用数组来实现这一功能,代码如下:php代码示例:<?php
$a = 9;
$arr = array('零', '一', '二', '三', '四', '五', '六', '七', '八', '九');
echo $arr[$a];
// 九
?>上面的代码只能实现一个不超过9的正整数进行转换,但如果是一串长长的数字该如何转换呢?php中阿拉伯数字转大写的方法下面给出两个可以处理数字字符串的示例,大家可根据自己的需求使用吧!示例1:自定义一个php函数<?php
function intTostr($num) {
// 判断是否为数组
if(!is_numeric($num)){
return "要转换的金额只能为数字!";
}
// 预定义要转换的字符,自己可以切换一下要转换的方式
// $arr = array('零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖');
$arr = array('零', '一', '二', '三', '四', '五', '六', '七', '八', '九');
$result = null;
//获取字符串的长度 4dn.net
$integerArrLength = strlen($num);
//开始转化
for($i = 0; $i < $integerArrLength; $i++) {
$result .= $arr[$num[$i]];
}
return $result;
}
?>函数调用<?php
echo intTostr('01123123456');
//零一一二三一二三四五六
?>示例2:<?php
$num = '056445678';
$toarr = array('零', '一', '二', '三', '四', '五', '六', '七', '八', '九');
$arr = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9');
echo str_replace($arr,$toarr,$num);
// 零五六四四五六七八
?>
评论
172条评论你好 Lv.1 回复
1111你好
北京市 移动
▓▓▓▓ Lv.1
Chrome 99.0.4844.84
Windows 7 回复
是反方向
上海市 电信
Lv.1 回复
6666啊
中国 移动
6666 Lv.1 回复
666嘿嘿
云南省昆明市 电信CDMA/LTE全省共用出口
是不是 Lv.1
Chrome 99.0.4844.84
Windows 回复
是的 撒
四川省 联通
时光 Lv.1 回复
新人报道
学习一下
四川省 广电网
1024764126 Lv.1 回复
在我熄灭之前,能够照亮你一点,就是我所能做的了
河北省唐山市 电信
轻语 Lv.1
Chrome 98.0.4758.9
Windows 7 回复
轻语
浙江省温州市 电信
情谊32 Lv.1
Safari 15.4
Mac OS X 10.15.7 回复
11爽肤水FSF饿
山东省淄博市 移动
可乐888 Lv.1 回复
啊。。。。。。。。
广东省广州市 联通