根据多个值检查一个变量?

时间:2013-02-19 13:09:44

标签: php arrays if-statement

目前,我正在做这样的事情:

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

哪个比

更容易阅读
if ( $variable == "a" || $variable == "b" || $variable == "c" ) { ... }

但我想知道,是否有更有效的方法,而不是检查数组中的值?

2 个答案:

答案 0 :(得分:2)

试试这个

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

创建$ my_array会产生一次性O(n)成本,然后检查匹配是否为O(1)。

答案 1 :(得分:0)

您可以使用 switch case 语句来针对多个值检查变量。

请参阅下面提到的代码段

e.g。

  switch($a)
  {
      case 'a':
    //do something
      break;
     case 'b':
     //do something
     break; 
    case 'c':
    //do something
    break;
  }