用于状态条件的PHP数组

时间:2014-10-22 21:38:01

标签: php html mysql for-loop multidimensional-array

我从mySQL返回以下数据:

阵 (     [0] => stdClass对象         (             [id] => 1             [list_id] = 2             [price] => 10             [tax_type] =>习惯         )

[1] => stdClass Object
    (
        [id] => 2
        [list_id] = 2
        [price] => 10
        [tax_type] => freezone
    )

[2] => stdClass Object
    (
        [id] => 3
        [list_id] = 3
        [price] => 10
        [tax_type] => freezone        )

[3] => stdClass Object
    (
        [id] => 4
        [list_id] = 3
        [price] => 10
        [tax_type] => custom        )

数据基本上显示了一个订单中的多次购买(例如,3次购买,具有不同的产品价格/税级)。

我可以通过以下方式检索价格:

foreach($array_data as $out) {
foreach($out as $inner) {
$sum['price'] += $inner->price;
        }
}

但是我在添加条件时遇到了困难,例如,如果我这样做:

if ($tax_type == "custom") {
                $sum['price'] += $inner->price;
                $tax_band = ($tax_rate / 100) * $inner->price;
                $tax band = round($tax_band, 2);
            } else { 
                $sum['price'] += $inner->price;
                $tax_band = ($tax_rate / 100) * $inner->price;
                $tax band = round($tax_band, 2); }

工作正常 - 但是我在这里有第三种情况 - 如果一个数组项目同时包含自定义/自由区状态,它似乎对我的状况不太好,因为我喜欢迭代数组并计算出各个价格税带,而不是将它们全部设为一个项目。

1 个答案:

答案 0 :(得分:0)

您可以使用elseif或switch语句。

Php api control structures

elseif语句的一个例子是:

if ($tax_type == "custom") {

    //logic for custom

} 
elseif($tax_type == "freezone"){

    //logic for freezone

}
elseif($tax_type == "custom/freezone") { 

    //logic for custom/freezone

}