我有一个5X5的转换矩阵。基本上旧州进入新州。我已经设置了以下if语句块但是想知道是否有更优雅的解决方案:
if( ($oldStatus[$i] == "OUT" || $oldStatus[$i]=="OPEN") && $newStatus[$i] == "OUT"){
$email[$i] = false;
$crw [$i] = 'OUT';
$sort [$i] = 9;
}else if ( ($oldStatus[$i]=="OUT" || $oldStatus[$i]=="OPEN") && $newStatus[$i]=="CONFIRMED"){
}else if ( ($oldStatus[$i]=="OUT" || $oldStatus[$i]=="OPEN") && $newStatus[$i]=="WAITLIST"){
}else if ( ($oldStatus[$i]=="OUT" || $oldStatus[$i]=="OPEN") && $newStatus[$i]=="FLEXOPEN"){
}else if ( ($oldStatus[$i]=="OUT" || $oldStatus[$i]=="OPEN") && $newStatus[$i]=="FLEXCLOSE"){
}else if ($oldStatus[$i]=="CONFIRMED" && $newStatus[$i]=="OUT"){
}else if ($oldStatus[$i]=="CONFIRMED" && $newStatus[$i]=="CONFIRMED"){
}else if ($oldStatus[$i]=="CONFIRMED" && $newStatus[$i]=="WAITLIST"){
}else if ($oldStatus[$i]=="CONFIRMED" && $newStatus[$i]=="FLEXOPEN"){
}else if ($oldStatus[$i]=="CONFIRMED" && $newStatus[$i]=="FLEXCLOSE"){
}else if ($oldStatus[$i]=="WAITLIST" && $newStatus[$i]=="OUT"){
}else if ($oldStatus[$i]=="WAITLIST" && $newStatus[$i]=="CONFIRMED"){
}else if ($oldStatus[$i]=="WAITLIST" && $newStatus[$i]=="WAITLIST"){
}else if ($oldStatus[$i]=="WAITLIST" && $newStatus[$i]=="FLEXOPEN"){
}else if ($oldStatus[$i]=="WAITLIST" && $newStatus[$i]=="FLEXCLOSE"){
}else if ($oldStatus[$i]=="FLEXOPEN" && $newStatus[$i]=="OUT"){
}else if ($oldStatus[$i]=="FLEXOPEN" && $newStatus[$i]=="CONFIRMED"){
}else if ($oldStatus[$i]=="FLEXOPEN" && $newStatus[$i]=="WAITLIST"){
}else if ($oldStatus[$i]=="FLEXOPEN" && $newStatus[$i]=="FLEXOPEN"){
}else if ($oldStatus[$i]=="FLEXOPEN" && $newStatus[$i]=="FLEXCLOSE"){
}else if ($oldStatus[$i]=="FLEXCLOSE" && $newStatus[$i]=="OUT"){
}else if ($oldStatus[$i]=="FLEXCLOSE" && $newStatus[$i]=="CONFIRMED"){
}else if ($oldStatus[$i]=="FLEXCLOSE" && $newStatus[$i]=="WAITLIST"){
}else if ($oldStatus[$i]=="FLEXCLOSE" && $newStatus[$i]=="FLEXOPEN"){
}else if ($oldStatus[$i]=="FLEXCLOSE" && $newStatus[$i]=="FLEXCLOSE"){
}
答案 0 :(得分:1)
您可以通过开关操作......类似
switch($oldStatus[$i]) {
case 'OPEN':
case 'OUT':
switch($newStatus[$i]) {
case 'CONFIRMED':
//do something here
break;
case 'WAITLIST' {
//do something else here
break;
}
break;
case 'CONFIRMED':
switch($newStatus[$i]) {
case 'CONFIRMED':
//do something here
break;
case 'WAITLIST' {
//do something else here
break;
//do the rest of the new cases here
}
break;
//do the rest of the old cases just like above here
}
如果有新的选项
,将来会让它变得更漂亮,更容易管理