$char1="A";
$char2="C";
$ok = preg_match("/([AB]{1}[CD]{1})/", $char1.$char2, $data);
$str = $ok? $data[0]: "";
echo $str;-----------------------或-----------------------------------------
$num = 0;
if(A) $num += 1;
if(B) $num += 2;
if(C) $num += 4;
if(D) $num += 8;
switch($num){
  case 5: return AC;
  case 9: return AD;
  case 6: return BC;
  case 10 return BC;
  default: return NULL;
}

解决方案 »

  1.   

    $cmp = array("AC","AD","BC","BD");
    $key = "BC";
    echo array_search($key,$cmp);
      

  2.   

    $cmp = array("AC","AD","BC","BD");
    $key = "BC";
    echo array_search($key,$cmp);赞啊
      

  3.   

    ABCD是四个条件,不是四个数字啊?比如A是$a1和$a2比大小,B条件是$b1和$b2比大小。
      

  4.   

    那不是
    if ($a1>$a2 or $b1>$b2) and ($c1>$c2 or $d1 >$d2) then么?
      

  5.   

    if ((($a1>$a2) | ($b1>$b2)) & (($c1>$c2) | ($d1>$d2)) )
      

  6.   

    难道只能用:
    if (A) {if(C) (……;) elseif(D) (……;)}
    elseif(B) {if(C) (……;) elseif(D) (……;)}
    这样?
      

  7.   

    这有什么区别吗?
    <?
    $a1 = 2;
    $a2 = 3;
    $b1 = 4;
    $b2 = 3;
    $c1 = 2;
    $c2 = 1;
    $d1 = 2;
    $d2 = 3;
    $cmp = array($a1>$a2 && $c1>$c2,$a1>$a2 && $d1>$d2,$b1>$b2 && $c1>$c2,$b1>$b2 && $d1>$d2);
     
    $fun = "fun".key(array_filter($cmp));
    $fun();function fun() {
      echo "没有符合的条件";
    }
    function fun0() {
      echo '满足条件$a1>$a2 && $c1>$c2';
    }
    function fun1() {
      echo '满足条件$a1>$a2 && $d1>$d2';
    }
    function fun2() {
      echo '满足条件$b1>$b2 && $c1>$c2';
    }
    function fun3() {
      echo '满足条件$b1>$b2 && $d1>$d2';
    }
    ?>