问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

tinkphp获取数据库的数字转换为中文?

发布网友 发布时间:2022-04-07 05:45

我来回答

2个回答

懂视网 时间:2022-04-07 10:07

php实现数字转中文的两种方法

直接上实例,写到 千亿上了。

<?php
/**
* 把数字1-1亿换成汉字表述,如:123->一百二十三
* @param [num] $num [数字]
* @return [string] [string]
*/
function numToWord($num)
{
$chiNum = array('零', '一', '二', '三', '四', '五', '六', '七', '八', '九');
$chiUni = array('','十', '百', '千', '万', '亿', '十', '百', '千');
 
$chiStr = '';
 
$num_str = (string)$num;
 
$count = strlen($num_str);
$last_flag = true; //上一个 是否为0
$zero_flag = true; //是否第一个
$temp_num = null; //临时数字
 
$chiStr = '';//拼接结果
if ($count == 2) {//两位数
$temp_num = $num_str[0];
$chiStr = $temp_num == 1 ? $chiUni[1] : $chiNum[$temp_num].$chiUni[1];
$temp_num = $num_str[1];
$chiStr .= $temp_num == 0 ? '' : $chiNum[$temp_num]; 
}else if($count > 2){
$index = 0;
for ($i=$count-1; $i >= 0 ; $i--) { 
$temp_num = $num_str[$i];
if ($temp_num == 0) {
if (!$zero_flag && !$last_flag ) {
$chiStr = $chiNum[$temp_num]. $chiStr;
$last_flag = true;
}
}else{
$chiStr = $chiNum[$temp_num].$chiUni[$index%9] .$chiStr;
 
$zero_flag = false;
$last_flag = false;
}
$index ++;
}
}else{
$chiStr = $chiNum[$num_str[0]]; 
}
return $chiStr;
}
 
$num = 150;
echo numToWord($num);

输出结果显示:

一百五十

方法二:

<?php
 /**
* 数字转换为中文
* @param string|integer|float $num 目标数字
* @param integer $mode 模式[true:金额(默认),false:普通数字表示]
* @param boolean $sim 使用小写(默认)
* @return string
*/
 function number2chinese($num,$mode = true,$sim = true){
 if(!is_numeric($num)) return '含有非数字非小数点字符!';
 $char = $sim ? array('零','一','二','三','四','五','六','七','八','九')
 : array('零','壹','贰','叁','肆','伍','陆','柒','捌','玖');
 $unit = $sim ? array('','十','百','千','','万','亿','兆')
 : array('','拾','佰','仟','','萬','億','兆');
 $retval = $mode ? '元':'点';
 //小数部分
 if(strpos($num, '.')){
 list($num,$dec) = explode('.', $num);
 $dec = strval(round($dec,2));
 if($mode){
  $retval .= "{$char[$dec['0']]}角{$char[$dec['1']]}分";
 }else{
  for($i = 0,$c = strlen($dec);$i < $c;$i++) {
  $retval .= $char[$dec[$i]];
  }
 }
 }
 //整数部分
 $str = $mode ? strrev(intval($num)) : strrev($num);
 for($i = 0,$c = strlen($str);$i < $c;$i++) {
 $out[$i] = $char[$str[$i]];
 if($mode){
  $out[$i] .= $str[$i] != '0'? $unit[$i%4] : '';
  if($i>1 and $str[$i]+$str[$i-1] == 0){
  $out[$i] = '';
  }
  if($i%4 == 0){
  $out[$i] .= $unit[4+floor($i/4)];
  }
 }
 }
 $retval = join('',array_reverse($out)) . $retval;
 return $retval;
 }
 //实例调用=====================================================
$num = '0123648867.789';
echo $num,'<br>';
 //普通数字的汉字表示
echo '普通:',number2chinese($num,false),'';
echo '<br>';
 //金额汉字表示
echo '金额(简体):',number2chinese($num,true),'';
echo '<br>';
echo '金额(繁体):',number2chinese($num,true,false);

输出结果显示:

0123648867.789
普通:零一二三六四八八六七点七八九
金额(简体):一亿二千三百六十四万八千八百六十七元七角八分
金额(繁体):壹億贰仟叁佰陆拾肆萬捌仟捌佰陆拾柒元柒角捌分

更多相关知识,请关注 PHP中文网!!

热心网友 时间:2022-04-07 07:15

您好,你的问题,我之前好像也遇到过,以下是我原来的解决思路和方法,希望能帮助到你,若有错误,还望见谅!你说的是数组?键值是字符串 用中文好像可以<?php/** * Created by PhpStorm. * User: Administrator * Date: 17.5.31 * Time: 15:02 */$arr['我']='lin';$arr['他']='王';$arr['谁']='孙';var_mp($arr);,非常感谢您的耐心观看,如有帮助请采纳,祝生活愉快!谢谢!
thinkphp实现多语言切换时,数据库数据如何也实现多语言?

在文章表中多添加一个字段用于存储英文的内容,发布文章的页面,同时上传中英文内容即可,然后服务端通过thinkphp的多语言标识来决定读取中文内容或者英文内容。也可以在前端模板中进行识别。2、需要中英文切换内容较多 如果某个数据表的多个字段或者多个数据表都需要做中英文切换,显然在数据表里添加多个字段的...

thinkphp 5怎么将数据库里面的出生日期在前端页面换算成年龄_百度知 ...

data 是你控制器得到的数据 this-&gt;assign('data',$data);默认{$data} 如果是数组 &lt;volist name= 'data'id='item'&gt; {$item['name']} &lt;/volist&gt;

thinkphp从数据库获取的电话号码,我要中间四个数字用星号表示怎么做_百 ...

这里需要用到一个php的函数:substr_replace() 函数把字符串的一部分替换为另一个字符串。这个函数的用法如下:substr_replace(string,replacement,start,length)参数:string 要被检查提取内容的字符串replacement 替换后的字符串start 截取的开始位置(以0开始)length 截取的长度直接上代码:(假如数据库中的...

php thinkphp3。2怎么获取某数据库字段的内容?

1、首先,打开php编辑器,新建php文件,例如:index.php,以获取user表name字段为例。2、在index.php中,输入代码:$User = M("User");$data = $User-&gt;field(['name'])-&gt;find();print_r($data);。3、浏览器运行index.php页面,此时会打印出user表name字段的查询结果。

thinkphp 如何查询.输出判断后的结果?

比如前台页面)再来判断输出“你好”还是“我好”。这样岂不是更清晰?比如后台 data = $model-&gt;field('id','name','value')-&gt;select();得到了需要输出的数据,前台判断输出 &lt;volist name="data" id="vo"&gt; &lt;eq name="vo.value" value="0"&gt;你好&lt;else/&gt;我好&lt;/eq&gt;&lt;/volist&gt; ...

thinkphp中下拉列表从数据库中获取值,不知道哪错了,求教

1、APP_DEBUG是否开启(可能是程序报错了)2、确定$select变量,是否不为空(数据库里是否有数据)3、volist标签用法看上去应该是没错的。可以换成下面那种试试 &lt;volist name="select" id="vo"&gt; {$vo.name} &lt;/volist&gt;

thinkphp怎么输出数据库内容?

控制器:result = $M-&gt;where($where)-&gt;select(); //读取数据库内容 this-&gt;assign("result",$result); //输出变量到模板 dump($result);//打印当前变量内容 模板:&lt;volist name="result" id="vo"&gt; {$vo.id} &lt;/volist&gt;

thinkphp3.1 调用数据库字段值

Dao = M('posts');$list = $Dao-&gt;getField('url',true);dump($list);//你没有加条件 出来的是数组

thinkphp配置文件里面要使用到数据库的数据怎么办,在config.php文件里面...

config.php是用来设置相关的sql连接项,比如连接类型 连接帐号 密码 端口 数据库选择等.在要使用到数据库的数据时,在控制器中先初始化该表的model,如$user = M('User');

ThinkPHP5 获取时间戳自动转化BUG,求教

1.确认存入数据库的数据是时间戳保存;(如果不是,检查插入数据,或者数据设置??)2.如果数据库是时间戳,那在看看model有没设置读取器等输出时自动改变格式;(有就删掉)3.一二点都没毛病。。要改只能在你用date之前把create_time先转成时间戳(用strtotime或者在model里用读取器每次读取自动给你...

js怎么获取数据库中的数据 如何获取数据库的数据 html获取数据库数据 jsp获取数据库数据 数据库获取数据登录 js获取数据库数据 数据库er图转换为关系模式 怎么获取数据库的值 数据库日期格式转换
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
文件密使无法恢复解密,请高手帮忙 加密文件打不开了,请教高手..急需用那些文件 跪求电脑高手帮忙解决文件加密问题,我把所有积分给他。 我的优盘是联想的,用自带的加密软件加密后,忘了密码,请教高手,怎么解密... pe pb是什么 抱着柴火去火跟前猜谜语 关于租用办公室房产税如何计算与缴纳的问题 一个人抱着柴火前方是火是打一成语的谜语 ...前男友跟别的女人抱一起的时候,放的背景纯音乐出自哪里 ...从前男友家出来后被阿苏接上车,在车上的背景音乐是什么,在哪里有下... 中国农民丰收节今年是第几届 适合小学一年级小朋友玩的体育游戏 什么游戏和立定跳远有关系,要适合五年级在体育课上玩的,最好不要用器材的。急求~~~!!! 初中体育课发展跳跃的游戏有哪些?(主要是提高立定跳远成绩) 想要日剧白色巨塔的全集,日语中文字幕的,最好是高清,种子发到qianshichen@126.com。。 求体育课跳跃类游戏,配合立定跳远练习的,最好是适用于高中的学生的 白*人节 JYJ 1st Fan meeting 高清中字完整DVD 可以给我吗35816614@qq.com谢谢 想要日剧白色巨塔的全集,日语中文字幕的,最好是高清 求泰坦尼克号227分钟完整白星版(高清)种子,要有中文字幕。发到邮箱28896226@qq.com 小学二年级立定跳远的巩固类的游戏有哪些 求一部国外搞笑爱情片 五种立定跳远游戏,我明天就要用,最好简单一点,不要太长,30-50字已经算多的了 谁有 白夜 韩国电影资源要有中文字幕的? 黑兽~気高き圣女は白浊に染まる~百度云盘,要有中文字幕的谢谢! 立定跳远接力游戏有什么竞赛方法? 求韩剧白色圣诞节中文字幕百度云链接 用完美解码播放圣城家园的电影,以前是中文字幕蓝色的,英文字幕白色的,现在全是白的了,怎么改回来啊 一天一天中文字幕MV下载 求加拿大电视剧 白芳(white fang)中文字幕版 ~~~~小时候很好看的一部电视剧 为什么网上都木有啊!! 请问您有泰坦尼克白星版的字幕吗??? QQ的靓号是不是永久的???但要续费??? 请问下,QQ靓号是不是永久的?规矩知情人士说下…… QQ靓号的使用期是永久的吗 QQ靓号买了是不是永久的? 2021年广东中考录取分数线 广东省2021中考最低几分能考上高中 2019年异地学生在广东中考分数线是多少? 广东中考补录惠阳高级中学今年分数线是多少 中考200分能上什么高中? 2021广东佛山中考录取分数线会降低大约多少分? 2013广东省梅州市中考各学校录取分数线是多少啊?各位知道的亲拜托啦,谢谢。 2011年广东南雄的南雄中学和南雄市一中的中考录取分数线是多少? 2015年广东中考分数线是多少 2011广东清远中考分数线是多少 移动硬盘只读什么意思 移动硬盘 只读 移动硬盘为什么在苹果系统下是只读 泪沟怎么去除更自然 泪沟怎么消除,消除泪沟这一个方法就够了 泪沟是怎么去除