在php中实现静态字符串的双向映射类的最好方法是什么?我认为有Enum类有6个常量3个键值对的2种方式映射。请提出更好的实施方案。
例如:如果我有以下映射,如果我引用M,我需要得到Mangalore,如果我引用Mangalore,我也需要得到M
M =>芒格洛尔德里D =>
0 => 0
谢谢! !
除非你绝对需要,否则不需要一个特殊的类。简单的PHP数组可以做到这一点我认为有Enum类有6个常量3个键值对的2种方式映射。请提出更好的实施方案。
<?php
$names=array();
$names["M"]="Mangalore";
$names["D"]="Delhi";
$names["O"]="Ooty";
echo $names["M"]; // Mangalore
echo array_search("Mangalore", $names); //M
?>
编辑
你也可以为这个
写一个小函数<?php
$names=array();
$names["M"]="Mangalore";
$names["D"]="Delhi";
$names["O"]="Ooty";
echo getMapping($names,"M");
echo getMapping($names,"Mangalore");
function getMapping($values,$search)
{
if(array_key_exists($search,$values))
{
return $values[$search];
}
$key=array_search($search,$values);
if($key)
{
return $key;
}
return 0;
}
?>