我有以下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)
但我不知道哪部分数组的成立是正确的。
答案 0 :(得分:0)
$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 );
答案 1 :(得分:0)
我想知道$ 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可能只是其他的,如果以前的检查都没有返回TRUE,那么这将是一个全部捕获。
答案 2 :(得分:0)
我已经隔离了在函数中检查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数组将增长,您将永远不需要重构此代码。