/** * 汉字拼音转换程序(支持多音字) * * @param string $keyword * @return array */ public static function getPinyin($keyword, $type = null) { // 变量定义 $hz = PyDict::$hanzi; $result = ""; // 转换成utf-8编码数组 $utf8_arr = Pinyin::strSplitPhp5Utf8($keyword); switch ($type) { case 1: // 获取每个汉字的首字母 foreach ($utf8_arr as $char) { if (isset($hz[$char])) { $result .= substr($hz[$char][0], 0, 1); } else { $result .= $char; } } $result = array($result); break; case 2: // 只获取第一个汉字的首字母,非汉字统一为# foreach ($utf8_arr as $char) { if (isset($hz[$char])) { foreach ($hz[$char] as $pinyin) { $result[] = substr($pinyin, 0, 1); } } else { $value = ord($char); if ($value >= 65 && $value <= 89 || $value >= 97 && $value <= 122) { $result = strtolower($char); } else { $result = '#'; } $result = array($result); } break; } break; default: // 汉字转换成拼音 foreach ($utf8_arr as $char) { if (isset($hz[$char])) { $result .= $hz[$char][0]; } else { $result .= $char; } } $result = array($result); break; } return $result; }