Php 如何找到满足哪个if语句

Php 如何找到满足哪个if语句,php,if-statement,Php,If Statement,我有下面的if语句 if ( $missCh[0]['type']==4 OR $missCh[1]['type'] == 4 OR $missCh[2]['type'] == 4 ) { echo 'go ahead'; } 我想知道$missCh[0]或[1]或[2]是否符合声明,这样我就可以问是否($missCh[X]['value]==3),但我不知道数组的哪个部分是正确的 $types = array( $missCh[0]['type'], $missCh[1]['type

我有下面的if语句

if ( $missCh[0]['type']==4 OR $missCh[1]['type'] == 4 OR $missCh[2]['type'] == 4 ) {
    echo 'go ahead';
}
我想知道
$missCh[0]
[1]
[2]
是否符合声明,这样我就可以问
是否($missCh[X]['value]==3)
,但我不知道数组的哪个部分是正确的

$types = array( $missCh[0]['type'], $missCh[1]['type'], $missCh[2]['type'] );

foreach ( $types as $key => $val ) {
   if ( $val == 4 ) $fours[] = $key;
}

foreach ( $types as $key => $val ) {
   if ( in_array( $key, $fours ) ) continue;
   if ( $val == 3 ) $threes[] = $key;
}

print_r( $fours );
print_r( $threes );
我想知道$missCh[0]或[1]或[2]是否符合该声明

由于您目前拥有它,您将无法在脚本中管理它,因为如果任何条件返回TRUE,您当前允许执行echo

如果要根据特定数组值的内容单独执行操作,则需要分别检查每个操作,并根据需要执行以下操作:

if($missCh[0]['type']==4)
  {
    //Do something
  }
elseif ($missCh[1]['type']==4)
  {
    //Do something
  }
elseif($missCh[2]['type']==4)
  {
    //Do something
  }

如果合适的话,您的最终elseif可以是else,如果之前的检查都没有返回TRUE,那么这将是一个包罗万象的结果

我已将检查函数中的if的责任隔离开来。该函数回显“继续”并返回等于4的索引$miss[$i]['type']

<?php

  $miss[0]['type'] = 2;
  $miss[1]['type'] = 4;
  $miss[2]['type'] = 5;

function goAhead($miss) {
  for($i=0;$i<=count($miss);$i++) {
    if($miss[$i]['type']==4) {
      echo 'go ahead';
      return $i;
    }
  }
}

$i = goAhead($miss);

echo $i;

如果数组增长,我不应该为($I=0$i@Ando,如果您对此感到担忧,那么为什么最初在if语句中使用了3个比较?@SunnyRGupta我需要三个比较,但我看到了答案,我认为我应该对此进行评论,因为这很有意义,最好加以修正。