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