'ling', 1 => 'yi', 2 => 'er', 3 => 'san', 4 => 'si', 5 => 'wu', 6 => 'liu', 7 => 'qi', 8 => 'ba', 9 => 'jiu']; protected static $unit = ['', 'shi', 'bai', 'qian', 'wan', 'shiwan', 'baiwan', 'qianwan', 'yi']; /** * 获取数字的拼音 * @param $number * @param $strtoupper // 返回大写 * @return string */ public static function getPinyin($number,$strtoupper = false) { $number = strval($number); // 将数字转换为字符串 $length = strlen($number); $pinyinStr = ''; for ($i = 0; $i < $length; $i++) { $digit = intval($number[$i]); if ($digit != 0) { // 处理万以上的位数 if ($length - $i > 4) { $pinyinStr .= self::$pinyin[$digit] . self::$unit[$length - $i - 1]; // 处理万位之间的零 if ($digit == 0 && $number[$i + 1] != 0) { $pinyinStr .= 'ling'; } } else { $pinyinStr .= self::$pinyin[$digit] . self::$unit[$length - $i - 1]; } } else { // 处理连续的0 if ($i == 0 || $number[$i] != 0) { $pinyinStr .= self::$pinyin[$digit]; } } } if ($strtoupper) $pinyinStr = strtoupper($pinyinStr); return $pinyinStr; } }