我有以下 if 语句
if ( $missCh[0]['type']==4 OR $missCh[1]['type'] == 4 OR $missCh[2]['type'] == 4 ) {
echo 'go ahead';
}
我想知道是否或$missCh[0]
正在满足该声明,以便我可以询问,但我不知道数组的哪一部分是正确的。[1]
[2]
if($missCh[X]['value]==3)
我有以下 if 语句
if ( $missCh[0]['type']==4 OR $missCh[1]['type'] == 4 OR $missCh[2]['type'] == 4 ) {
echo 'go ahead';
}
我想知道是否或$missCh[0]
正在满足该声明,以便我可以询问,但我不知道数组的哪一部分是正确的。[1]
[2]
if($missCh[X]['value]==3)
我想知道 $missCh[0] 或 [1] 或 [2] 是否符合声明
正如您目前拥有的那样,您将无法在脚本中管理它,因为您当前允许在任何条件返回 TRUE 时执行回显。
如果您想根据特定数组值单独执行某些操作,则需要单独检查每个操作并根据需要执行操作:
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 的责任。该函数回显“继续”并返回索引 $miss[$i]['type'] 等于 4。
<?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;
此解决方案适用于一个或无限索引或 $miss 数组。这意味着如果 $miss 数组会增长,您将永远不需要重构此代码。
$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 );