PHP拼音去音调,遇到轻音(没有声调)怎么处理?

function removeTone($txt) {
    $py = array(
        'ā'=>'a' ,
        'á'=>'a' ,
        'ǎ'=>'a' ,
        'à'=>'a' ,
        'ē'=>'e' ,
        'é'=>'e' ,
        'ě'=>'e' ,
        'è'=>'e' ,
        'ī'=>'i' ,
        'í'=>'i' ,
        'ǐ'=>'i' ,
        'ì'=>'i' ,
        'ō'=>'o' ,
        'ó'=>'o' ,
        'ǒ'=>'o' ,
        'ò'=>'o' ,
        'ū'=>'u' ,
        'ú'=>'u' ,
        'ǔ'=>'u' ,
        'ù'=>'u' ,
        'ǖ'=>'v' ,
        'ǘ'=>'v' ,
        'ǚ'=>'v' ,
        'ǜ'=>'v' ,
    );
    return str_replace(array_keys($py), array_values($py), $txt);
}
echo removeTone('qǐ,yè');

echo removeTone('qǐ,yè');

输出结果:qi,ye

希望输出为:qi3,ye4(将声调转换为数字)

注:部分原始没有声调,比如:“桃子”“滋味”两个zi

请求指导!

阅读 1.9k
2 个回答
function removeTone($txt) {
    $py = array(
        'a'=>'a0',
        'ā'=>'a1' ,
        'á'=>'a2' ,
        'ǎ'=>'a3' ,
        'à'=>'a4' ,
        //后面懒得写了
    );
    return str_replace(array_keys($py), array_values($py), $txt);
}
 $py = array(
        'ā'=> array(1, 'a') ,
        'á'=> array(2, 'a') ,
        'ǎ'=> array(3, 'a')
        // ...
 )
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题