今天遇到个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);
// 零五六四四五六七八
?>
评论
20条评论joannefal Lv.1
Chrome 86.0.4240.198
Windows 回复
㞏福安后方晚饭发拉横幅啊
澳大利亚
高山流水 Lv.1
Chrome 86.0.4240.198
Windows 回复
新人报道
学习一下
山东省济南市 移动
智云 Lv.1
Chrome 86.0.4240.198
Windows 回复
感谢楼主
,好人一生平安
广东省韶关市 移动
上海伟泰管道 Lv.1
Chrome 108.0.0.0
Windows 回复
好看视频通用代码
中国 移动
梵行. Lv.1
Chrome 107.0.0.0
Windows 回复
对方过后就发的规划十多个符合对方过后是对方过后是对方过后申达股份好
辽宁省沈阳市 联通
houlijun Lv.1
Chrome 86.0.4240.198
Windows 回复
新人学习,感谢分享
上海市嘉定区 电信
lucky* Lv.1
Maxthon 5.3.8.2000
Windows 回复
新人报道
学习一下
广东省广州市 电信
dajiahao Lv.1
Firefox 91.0
Windows 回复
不错哦
河北省沧州市 联通
夜风 Lv.1
Firefox 101.0
Windows 7 x64 Edition 回复
看看
上海市 电信
夏未央 Lv.1
Chrome 86.0.4240.198
Windows 回复
快快快
广东省东莞市 电信