- 締切済み
if and の記述の仕方で
お世話になっております。 下記記述をもっと簡単にする方法はあるのでしょうか? ご存知のかたご教授お願いできますでしょうか? if ($total_quantity == 1 and $fee == 10){ if ($arrData['subtotal'] >= 5000){ $arrData['deliv_fee'] = 0; } } if ($total_quantity == 2 and $fee == 20){ if ($arrData['subtotal'] >= 5000){ $arrData['deliv_fee'] = 0; } } if ($total_quantity == 2 and $fee == 20){ if ($arrData['subtotal'] <= 4999){ $arrData['deliv_fee'] += $this->sfGetDelivFee($arrData['deliv_pref'], $arrData['payment_id']) + $fee_cool; } } if ($total_quantity == 3 and $fee == 30){ if ($arrData['subtotal'] >= 5000){ $arrData['deliv_fee'] = 0; } } if ($total_quantity == 3 and $fee == 30){ if ($arrData['subtotal'] <= 4999){ $arrData['deliv_fee'] += $this->sfGetDelivFee($arrData['deliv_pref'], $arrData['payment_id']) + $fee_cool; } }if ($total_quantity == 4 and $fee == 40){ if ($arrData['subtotal'] >= 5000){ $arrData['deliv_fee'] = 0; } } if ($total_quantity == 4 and $fee == 40){ if ($arrData['subtotal'] <= 4999){ $arrData['deliv_fee'] += $this->sfGetDelivFee($arrData['deliv_pref'], $arrData['payment_id']) + $fee_cool; } } 以下50ぐらいまで続きます。 $total_quantity は個数で、$feeは数値です。 $total_quantityのレコードに$feeが10がセットされています。 もっと簡単に書きたいのですが、手詰まってしまいました。 宜しくお願いいたします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- yambejp
- ベストアンサー率51% (3827/7415)
きちんとフローを確認できていませんが、同じような部分を まとめると、こんな感じでどうでしょう? <? $needle =Array($total_quantity,$fee); $haystack =Array( Array(1,10) ,Array(2,20) ,Array(3,30) ); if(in_array($needle,$haystack)){ if ($arrData['subtotal'] >= 5000){ $arrData['deliv_fee'] = 0; }else{ $arrData['deliv_fee'] += $this->sfGetDelivFee($arrData['deliv_pref'],$arrData['payment_id']) + $fee_cool; } } ?>
お礼
ありがとうございました。 これを参考にもう一点質問をさせていただきました。 もしよろしければ宜しくお願いいたします。