2

PHPで静的文字列の2ウェイマッピングクラスを実装する最良の方法は何ですか. 3つのキーと値のペアの双方向マッピングのために6つの定数を持つEnumクラスがあると思いました。より良い実装を提案してください。

例: 次のマッピングがある場合、M を参照する場合はマンガロールを取得する必要があり、マンガロールを参照する場合は M も取得する必要があります。

M=> マンガロール
D=> デリー
O=> ウーティ

ありがとう !!

4

1 に答える 1

1

3つのキーと値のペアの双方向マッピングのために6つの定数を持つEnumクラスがあると思いました。より良い実装を提案してください。

絶対に必要でない限り、このための特別なクラスは必要ありません。単純な PHP 配列でこれを行うことができます

<?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;
}


?>
于 2013-05-09T05:49:22.760 に答える