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


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配置文件中最常用四个ini函数
Mar 19 PHP
基于HBase Thrift接口的一些使用问题及相关注意事项的详解
Jun 03 PHP
浅谈php serialize()与unserialize()的用法
Jun 05 PHP
PHP数字字符串左侧补0、字符串填充和自动补齐的几种方法
May 10 PHP
php使用cookie显示用户上次访问网站日期的方法
Jan 26 PHP
变量在 PHP7 内部的实现(二)
Dec 21 PHP
YII动态模型(动态表名)支持分析
Mar 29 PHP
php用户登录之cookie信息安全分析
May 13 PHP
ajax调用返回php接口返回json数据的方法(必看篇)
May 05 PHP
PHP实现生成模糊图片的方法示例
Dec 21 PHP
PHP swoole和redis异步任务实现方法分析
Aug 12 PHP
php-7.3.6 编译安装过程
Feb 11 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
PHP5权威编程阅读学习笔记 附电子书下载
2012/07/05 PHP
ThinkPHP使用心得分享-ThinkPHP + Ajax 实现2级联动下拉菜单
2014/05/15 PHP
php实现的简单日志写入函数
2015/03/31 PHP
图文详解PHP环境搭建教程
2016/07/16 PHP
php取出数组单个值的方法
2018/03/12 PHP
JS的IE和Firefox兼容性集锦
2006/12/11 Javascript
自己的js工具 Event封装
2009/08/21 Javascript
加载jQuery后$冲突的解决办法
2010/07/09 Javascript
解析JavaScript中的标签语句
2013/06/19 Javascript
JavaScript中使用arguments获得函数传参个数实例
2014/08/27 Javascript
详解Jquery实现ready和bind事件
2016/04/14 Javascript
AngularJS实现使用路由切换视图的方法
2017/01/24 Javascript
JS基于onclick事件实现单个按钮的编辑与保存功能示例
2017/02/13 Javascript
Omi v1.0.2发布正式支持传递javascript表达式
2017/03/21 Javascript
详解nodejs实现本地上传图片并预览功能(express4.0+)
2017/06/28 NodeJs
JS实现的数组去除重复数据算法小结
2017/11/17 Javascript
vue发送ajax请求详解
2018/10/09 Javascript
jquery使用FormData实现异步上传文件
2018/10/25 jQuery
在JavaScript中如何访问暂未存在的嵌套对象
2019/06/18 Javascript
layui表格设计以及数据初始化详解
2019/10/26 Javascript
python基于urllib实现按照百度音乐分类下载mp3的方法
2015/05/25 Python
Python爬虫爬取美剧网站的实现代码
2016/09/03 Python
django model去掉unique_together报错的解决方案
2016/10/18 Python
Python代码缩进和测试模块示例详解
2018/05/07 Python
最小二乘法及其python实现详解
2020/02/24 Python
Django User 模块之 AbstractUser 扩展详解
2020/03/11 Python
Python装饰器实现方法及应用场景详解
2020/03/26 Python
HTML5 Canvas绘制文本及图片的基础教程
2016/03/14 HTML / CSS
表达自我的市场:Society6
2018/08/01 全球购物
法律系毕业生自荐信范文
2014/03/27 职场文书
旅游节目策划方案
2014/05/26 职场文书
项目负责人岗位职责
2015/02/15 职场文书
档案工作个人总结
2015/03/03 职场文书
入党积极分子党小组意见
2015/06/02 职场文书
go:垃圾回收GC触发条件详解
2021/04/24 Golang
JS前端可视化canvas动画原理及其推导实现
2022/08/05 Javascript