-1

私は、最善の解決策が何であるかについていくつかの情報を得たかっただけです-以下に続く問題に対して効率的です。

たとえば、6 つの異なるカテゴリがあるとします。これらのカテゴリ内で、5 ~ 6 個の選択肢があります。各カテゴリで選択した内容に基づいて、異なる結果が生成されます。if ロジック、配​​列、またはその他の方法をたくさん実行して、これを解決しますか?

私の考えは、switch ステートメントまたは if ロジックを実行することでした。これが最善の方法ですか?

4

1 に答える 1

1

このようなレイアウトを行った場合:

switch($cat1){
  case 1:
    switch($cat2){
      case 1:
        ...
        break;
    }
    break;
  case 2:
    ...
    break;
}

またはこれ:

if($cat1 == 1){
  if($cat2 == 1){
    ...
  }elseif($cat2 == 2){
    ...
  }
}elseif($cat1 == 2){
  ...
}

どちらの方法でもロジックを処理するには、100,000行をはるかに超えるコードが必要になります。うわぁ。しかし、それぞれが6つの選択肢を持つ6つのカテゴリがある場合、合計46,656の異なる組み合わせが得られます。6^6。あなたのサイトがデータベースに接続されている場合、あなたはあなたを助けるためにこのようなことをすることができます。

$layout = $cat1 . $cat2 . $cat3 . $cat4 . $cat5 . $cat6;
//making $layout 315632 or whatever based on what they select.

また、データベースで、IDが$ layoutと一致するテーブルを作成し、表示情報をデータベースの行に保存することができます。

 -------------------------------------
|   id   | name | make | year | model |
|--------|------|------|------|-------|
| 111111 | Aero |  S2  | 2011 | M-110 |
| 111112 | .... | .... | .... | ..... |
| 111113 | .... | .... | .... | ..... |
 -------------------------------------

次に、単純な行ルックアップを使用して、phpで結果を取得します。もちろん、すべての情報をデータベースに入れるにはかなりの時間がかかりますが、とにかくphpファイルにロジックを作成するにはかなりの時間がかかります。これは、ユーザーが実際にサイトを使用している場合に限り最速の方法であり、デバッグが容易になります。

これができない場合、次に速い賭けは(すべてをまっすぐに保つことができる場合)、6つのネストされたif/elseifステートメントを使用することです。これにより得られるチェックのほとんどは36ですが、ユーザーが何を選択するかによってはそれより少なくなる可能性があります。switch-caseも機能しますが、if/elseifステートメントよりも少し面倒です。

于 2013-02-25T19:05:26.900 に答える