0

現在、私は次のようなことをしています:

if ( in_array ( $variable, ["a","b","c"] ) ) { ... }

よりも少し読みやすい

if ( $variable == "a" || $variable == "b" || $variable == "c" ) { ... }

しかし、配列内の値をチェックする代わりに、もっと効率的な方法はあるのでしょうか?

4

2 に答える 2

2

このようにしてみてください

$my_array = array_flip(array('a', 'b', 'c', 'd', ...));
if (isset($my_array[$variable])) ...

これには、$ my_arrayを作成するための1回限りのO(n)コストがあり、一致するかどうかのチェックはO(1)です。

于 2013-02-19T13:13:46.707 に答える
0

switch caseステートメントを使用して、変数を複数の値と照合できます。

下記のコードスニペットを参照してください

例えば

  switch($a)
  {
      case 'a':
    //do something
      break;
     case 'b':
     //do something
     break; 
    case 'c':
    //do something
    break;
  }
于 2013-02-19T13:30:07.177 に答える