一个阿拉伯数字转中文数字的函数


Posted in PHP onOctober 09, 2006

最近因需要,写了个“阿拉伯数字转中文数字的函数”。搜索了精华区只见到一个类似的。
感觉到我的算法不错,所以贴出来共享一下如果要用于金额的转换,对小数部分的处理要做一下修改
<?php
function ch_num($num,$mode=true) {
  $char = array("零","壹","贰","叁","肆","伍","陆","柒","捌","玖");
  $dw = array("","拾","佰","仟","","?","?|","兆");
  $dec = "?";
  $retval = "";

  if($mode)
    preg_match_all("/^0*(\d*)\.?(\d*)/",$num, $ar);
  else
    preg_match_all("/(\d*)\.?(\d*)/",$num, $ar);

  if($ar[2][0] != "")
    $retval = $dec . ch_num($ar[2][0],false); //如果有小数,先递归处理小数
  if($ar[1][0] != "") {
    $str = strrev($ar[1][0]);
    for($i=0;$i<strlen($str);$i++) {
      $out[$i] = $char[$str[$i]];
      if($mode) {
        $out[$i] .= $str[$i] != "0"? $dw[$i%4] : "";
        if($str[$i]+$str[$i-1] == 0)
          $out[$i] = "";
        if($i%4 == 0)
          $out[$i] .= $dw[4+floor($i/4)];
      }
    }
    $retval = join("",array_reverse($out)) . $retval;
  }
  return $retval;
}

//echo ch_num("12345006789001.123");
//echo ch_num("880079.1234");
echo ch_num("300045.0123");

?>

PHP 相关文章推荐
PHP 读取文件的正确方法
Apr 29 PHP
php实现把数组按指定的个数分隔
Feb 17 PHP
PHP实现手机号码中间四位用星号(*)隐藏的自定义函数分享
Sep 27 PHP
php rsa加密解密使用详解
Jan 14 PHP
php中ob_flush函数和flush函数用法分析
Mar 18 PHP
php实现Mongodb自定义方式生成自增ID的方法
Mar 23 PHP
php冒泡排序与快速排序实例详解
Dec 07 PHP
Yii2 hasOne(), hasMany() 实现三表关联的方法(两种)
Feb 15 PHP
PHP简单实现欧拉函数Euler功能示例
Nov 06 PHP
浅谈PHP无限极分类原理
Mar 14 PHP
laravel 实现关闭CSRF(全部关闭、部分关闭)
Oct 21 PHP
PHP 时间处理类Carbon
May 20 PHP
PHP与已存在的Java应用程序集成
Oct 09 #PHP
使用PHP模拟HTTP认证
Oct 09 #PHP
在PHP中使用XML
Oct 09 #PHP
使用PHP维护文件系统
Oct 09 #PHP
跟我学小偷程序之成功偷取首页(第三天)
Oct 09 #PHP
在apache下限制每个虚拟主机的并发数!!!!
Oct 09 #PHP
PHP4之真OO
Oct 09 #PHP
You might like
在DC的漫画和电影中,蝙蝠侠的宿敌,小丑的真名是什么?
2020/04/09 欧美动漫
PHP4和PHP5共存于一系统
2006/11/17 PHP
为PHP初学者的8点有效建议
2010/11/20 PHP
phpmail类发送邮件函数代码
2012/02/20 PHP
解析PHP提交后跳转
2013/06/23 PHP
mysql_connect localhost和127.0.0.1的区别(网络层阐述)
2015/03/26 PHP
yii2控制器Controller Ajax操作示例
2016/07/23 PHP
php合并数组并保留键值的实现方法
2018/03/12 PHP
IE bug table元素的innerHTML
2010/01/11 Javascript
10个基于Jquery的幻灯片插件教程
2010/10/29 Javascript
jquery选择器使用详解
2014/04/08 Javascript
JS使用for循环遍历Table的所有单元格内容
2014/08/21 Javascript
JS实现IE状态栏文字缩放效果代码
2015/10/24 Javascript
jQuery+PHP+MySQL实现无限级联下拉框效果
2016/02/19 Javascript
js监听键盘事件的方法_原生和jquery的区别详解
2016/10/10 Javascript
node.js与C语言 实现遍历文件夹下最大的文件,并输出路径,大小
2017/01/20 Javascript
jquery dialog获取焦点的方法
2017/02/09 Javascript
vue.js+Echarts开发图表放大缩小功能实例
2017/06/09 Javascript
jQuery菜单实例(全选,反选,取消)
2017/08/28 jQuery
微信小程序使用progress组件实现显示进度功能【附源码下载】
2017/12/12 Javascript
微信小程序之事件交互操作实例分析
2018/12/03 Javascript
微信小程序实现滚动加载更多的代码
2019/12/06 Javascript
VUE table表格动态添加一列数据,新增的这些数据不可以编辑(v-model绑定的数据不能实时更新)
2020/04/03 Javascript
python的pdb调试命令的命令整理及实例
2017/07/12 Python
python编程实现随机生成多个椭圆实例代码
2018/01/03 Python
浅谈PyQt5中异步刷新UI和Python多线程总结
2019/12/13 Python
基于python+selenium的二次封装的实现
2020/01/06 Python
Python新手学习raise用法
2020/06/03 Python
如何利用input事件来监听移动端的输入
2016/04/15 HTML / CSS
美国家居装饰网上商店:Lulu & Georgia
2019/09/14 全球购物
黄河象教学反思
2014/02/10 职场文书
三关爱志愿服务活动方案
2014/08/17 职场文书
面试通知单大全
2015/04/20 职场文书
护士旷工检讨书
2015/08/15 职场文书
李清照的诗词赏析(20首)
2019/08/22 职场文书
通过feDisplacementMap和feImage实现水波特效
2022/04/24 HTML / CSS