0

これをはるかに短い方法で行うためのジェネリック関数を作成する方法について、誰かアイデアはありますか?

if (($item['Quantity'] > 9) && ($item['Quantity'] < 20)) {  $bogo_item = 1; }
else if (($item['Quantity'] > 19) && ($item['Quantity'] < 30))  { $bogo_item = 2; } else if (($item['Quantity'] > 29) && ($item['Quantity'] < 40))  { $bogo_item = 3; } else if (($item['Quantity'] > 39) && ($item['Quantity'] < 50))  { $bogo_item = 4; }
...

など... 基本的に、変数 $item['Quantity'] をチェックして比較し、それがいずれかのケースに当てはまるかどうかを確認する関数を作成したいと思います。

4

1 に答える 1

0

これは典型的なルックアップの問題です...

トリプルの配列を作成できます:(私はPHPプログラマーではありませんが、ここにJavaScriptがあります)

// position 0=lower limit, position 1=upper limit, position 2=bogo item value
var values = [ [9, 20, 1], [19, 30, 2], [29, 40, 3], [39, 50, 4] ];

次に、一般的なループを記述できます。

for (var i= 0; i < values.length; ++i) {
    if ((item.quantity > values[i][0] && (item.quantity < values[i][1]) {
        return values[i][2];
    }
}

HTH

于 2012-06-22T21:39:25.663 に答える