我想要一个多对一键 - >值的字符串映射。
到目前为止我唯一的想法是做一系列这样的测试,但它并不是非常不优雅。
switch($s) {
case "en":
case "thatlanguagethebritsspeak":
case "english":
return "eng";
...
}
什么是更好的解决方案?
答案 0 :(得分:2)
if(in_array($s,array("eng","en","english"))){
//..
}
答案 1 :(得分:1)
$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;
}
}
答案 2 :(得分:0)
使用正则表达式,您可以使用区分大小写或不使用区分功能,这可能是一个优势......
return (preg_match('/(en|eng|english)/i',$s)) ? 'eng' : 'default';