美文网首页
PHP函数将任意数字转换成对应的汉字数字

PHP函数将任意数字转换成对应的汉字数字

作者: 梅先森森森森森森 | 来源:发表于2019-08-13 09:44 被阅读0次

    /**

    • 把数字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;
      

      }

    相关文章

      网友评论

          本文标题:PHP函数将任意数字转换成对应的汉字数字

          本文链接:https://www.haomeiwen.com/subject/bhvwjctx.html