分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 代码编程

PHP中文播报金额

发布时间:2023-09-06 01:24责任编辑:沈小雨关键词:PHP

  由于项目中使用极光推送需要播报用户消费的金额,所以写了以下代码。

前提1:播报的音频

前提2:极光推送

解决问题1:中文金额的播报

解决问题2:个十千百万亿及零的播报

如果有更好的方法请留言,大家互相学习哈!

上代码:

private function duqu($total_fee = 0) {
???????  if (empty($total_fee)) return false;
???????  // 设置0十百千万亿
???????  $array = array(‘0‘=>‘0‘, ‘1‘=>‘10‘, ‘2‘=>‘29‘, ‘3‘=>‘32‘, ‘4‘=>‘30‘, ‘5‘=>‘10,30‘, ‘6‘=>‘29,30‘, ‘7‘=>‘32,30‘, ‘8‘=>‘31‘);
???????  // 将金额通过点分割成数组
???????  $number = explode(‘.‘, $total_fee);
???????  $data = array();
???????  foreach ($number as $k => $v) {
???????????    $arr = str_split($v);
???????????    // 点前的运算
???????????    if ($k == 0) {
???????????????      $flag = $kk = 0;
???????????????      krsort($arr);
???????????????      foreach ($arr as $k1 => $v1) {
???????????????????        $kk++;
???????????????????        if ($kk == 1 && $v1 != 0) {
???????????????????????          $data[$k][] = $v1;
???????????????????        }else if ($v1 != 0) {
???????????????????????          if ( $flag != 0 && !empty($data[$k])) {
???????????????????????????            $data[$k][] = $array[0];
???????????????????????????            $flag = 0;
???????????????????????          } else if ($flag != 0 && empty($data[$k])) {
???????????????????????????            $flag = 0;
???????????????????????          }
???????????????????????          if ($v1 == 1 && $k1 == 0 && ($kk-1 == 1)) {
???????????????????????????            $data[$k][] = $array[$kk-1];
???????????????????????          } else {
???????????????????????????            $data[$k][] = $v1.‘,‘.$array[$kk-1];
???????????????????????          }
???????????????????        } else {
???????????????????????          if ($k1 < 8) {
???????????????????????????            $flag = $flag + 1;
???????????????????????          }
???????????????????        }
???????????????     }
???????????????     krsort($data[$k]);
???????????    } else { // 点后的运算
???????????????      foreach ($arr as $k1 => $v1) {
???????????????????        $data[$k][] = $v1;
???????????????      }
???????????    }
???????????    $data[$k] = implode(‘,‘,$data[$k]);
???????  }
???????  unset($arr);
???????  unset($array);
???????  unset($flag);
???????  unset($kk);
???????  // 添加點并合併
???????  if(empty($data[0])) {
???????????    $data[0] = ‘0,11‘;
???????  } else if (!empty($data[1])){
???????????    $data[0] .= ‘,11‘;
???????  }
???????  $res = implode(‘,‘,$data);
???????  $res .= ‘,27‘; //元
???????  return $res;
???}

PHP中文播报金额

原文地址:http://www.cnblogs.com/sxiangyues/p/7831865.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved