以下のコードをご覧ください
function GetAreaName($AreaCode)
{
  switch ($AreaCode) 
  {
    case 201: return 'New Jersey';
    case 202: return 'Washington';
    // this goes on till
    case 999: return '';
  }
}
たとえば、AreaCode が 998 の場合、非常に多くのケースを通過する必要があります。この関数を最適化するにはどうすればよいでしょうか? (データベースは使用しません。)
配列を構築し、それに対してバイナリ検索を行うことを考えていますか? しかし、これは、関数が呼び出されるたびに配列が再構築されることを意味しますか? 配列を一度構築してキャッシュし、この関数が呼び出されるたびに再利用するにはどうすればよいでしょうか?