switch-case ステートメントを使用して A と B を変換する既存のコードをリファクタリングしています。次のようになります。
<?php
function string2num($s)
{
switch($s){
case 'AB':
return 1;
case 'CD':
case 'GH':
return 2;
case 'EF':
return 3;
...
}
}
function num2String($n)
{
switch($n){
case 1:
return 'AB';
case 2:
return array('CD', 'GH');
...
}
}
そして、ケースが多すぎるため、大量のコードが発生します。今、テーブル駆動のアプローチでこれを行いたいのですが、問題は、string2num()
:のテーブルを作成すると、テーブルを$table = array('AB' => 1, 'CD' => 2, 'GH' => 2, 'EF' => 3, ...);
再利用できないことですnum2String()
(Iつまりarray_flip($table)
、それを使用します) の重複した値は$table
、反転時に 1 つのキーになるためです。私は2つのテーブルでそれを行うことができることを知っています.誰かがより良い解決策を持っていますか?