PHP - 如何将多个字符串映射到单个字符串?例如“en”、“english”、“eng” --> '工程'

发布于 2024-11-27 02:33:09 字数 230 浏览 3 评论 0原文

我想要字符串的多对一键值映射。

到目前为止,我唯一的想法就是进行一系列这样的测试,但这并不是很不优雅。

switch($s) {
    case "en":
    case "thatlanguagethebritsspeak":
    case "english":
        return "eng";
    ...
}

什么是更好的解决方案?

I want a many-to-one key->value mapping of strings.

My only idea so far is to do with a series of tests like this, but it's not very inelegant.

switch($s) {
    case "en":
    case "thatlanguagethebritsspeak":
    case "english":
        return "eng";
    ...
}

What would be a better solution?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

靑春怀旧 2024-12-04 02:33:09
if(in_array($s,array("eng","en","english"))){
   //..
}
if(in_array($s,array("eng","en","english"))){
   //..
}
晨曦÷微暖 2024-12-04 02:33:09
$languages = array( 'en' =>array('english','eng','thatlanguagethebritsspeak'),'de'=>array('deutsch','german'));
// convert it to lowercase
$s= strtolower($s);
foreach ($languages as $code => $language){
     if(in_array($s,$language){
          $s = $code; 
          break;
     }
}
$languages = array( 'en' =>array('english','eng','thatlanguagethebritsspeak'),'de'=>array('deutsch','german'));
// convert it to lowercase
$s= strtolower($s);
foreach ($languages as $code => $language){
     if(in_array($s,$language){
          $s = $code; 
          break;
     }
}
原来是傀儡 2024-12-04 02:33:09

使用正则表达式,您可以使用区分大小写或不区分大小写的功能,这可能是一个优点......

return (preg_match('/(en|eng|english)/i',$s)) ? 'eng' : 'default';

With regex, you can use case sensitive or not feature, which can be an advantages...

return (preg_match('/(en|eng|english)/i',$s)) ? 'eng' : 'default';
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文