|
|
|
@ -11,6 +11,10 @@ class PinyinNumber |
|
|
|
|
|
|
|
protected static $unit = ['', 'shi', 'bai', 'qian', 'wan', 'shiwan', 'baiwan', 'qianwan', 'yi']; |
|
|
|
|
|
|
|
protected static $zh_pinyin = [0 => '零', 1 => '一', 2 => '二', 3 => '三', 4 => '四', 5 => '五', 6 => '六', 7 => '七', 8 => '八', 9 => '九']; |
|
|
|
|
|
|
|
protected static $zh_unit = ['', '十', '百', '千', '万', '十万', '百万', '千万', '亿']; |
|
|
|
|
|
|
|
/** |
|
|
|
* 获取数字的拼音 |
|
|
|
* @param $number |
|
|
|
@ -47,4 +51,41 @@ class PinyinNumber |
|
|
|
if ($strtoupper) $pinyinStr = strtoupper($pinyinStr); |
|
|
|
return $pinyinStr; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 获取数字的汉字 |
|
|
|
* @param $number |
|
|
|
* @param $suffix // 后缀 |
|
|
|
* @return string |
|
|
|
*/ |
|
|
|
public static function getChinese($number,$suffix = '') |
|
|
|
{ |
|
|
|
|
|
|
|
$number = strval(round($number)); // 将数字转换为字符串 |
|
|
|
$length = strlen($number); |
|
|
|
$chineseStr = ''; |
|
|
|
|
|
|
|
for ($i = 0; $i < $length; $i++) { |
|
|
|
$digit = intval($number[$i]); |
|
|
|
|
|
|
|
if ($digit != 0) { |
|
|
|
// 处理万以上的位数 |
|
|
|
if ($length - $i > 4) { |
|
|
|
$chineseStr .= self::$zh_pinyin[$digit] . self::$zh_unit[$length - $i - 1]; |
|
|
|
// 处理万位之间的零 |
|
|
|
if ($digit == 0 && $number[$i + 1] != 0) { |
|
|
|
$chineseStr .= '零'; |
|
|
|
} |
|
|
|
} else { |
|
|
|
$chineseStr .= self::$zh_pinyin[$digit] . self::$zh_unit[$length - $i - 1]; |
|
|
|
} |
|
|
|
} else { |
|
|
|
// 处理连续的0 |
|
|
|
if ($i == 0 || $number[$i] != 0) { |
|
|
|
$chineseStr .= self::$zh_pinyin[$digit]; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
return $chineseStr . $suffix; |
|
|
|
} |
|
|
|
} |
|
|
|
|