【问题标题】:Foreach loop nested 3 times troublesForeach 循环嵌套 3 次麻烦
【发布时间】:2017-05-03 11:46:59
【问题描述】:

我正在尝试以下操作

每个屋顶测量 (fastbid_inspection_measurement_roof) 行的循环

然后 Foreach 行抓取roof_pitch 然后对 foreach 循环查询

fastbid_labor_tearoff 其中pitch$Pitch['roof_pitch'] 相同

然后在fastbid_labor_tearoff 中获取该行匹配的结果并计算其成本。

马上

如果有一条记录,它可以完美运行,但是如果fastbid_inspection_meaasurement_roof 中有两条记录,那么它将回显两条结果。我希望它回显两条或所有记录的总和。

我哪里错了?

fastbid_inspection_measurement_roof 方案

-------------------------------
| id | roof deck | roof_pitch |
-------------------------------
| 01 |    1359   |      5     |
-------------------------------
| 02 |    1211   |      6     |
-------------------------------

fastbid_labor_tearoff 方案

---------------------------------------------
| id | labor_cost | ground_drop |   pitch  | 
---------------------------------------------
| 01 |    22.50   |      7       |    5    |
---------------------------------------------
| 02 |    23.50   |      7       |    6    |
---------------------------------------------

这是我的 Foreach 循环

$RoofDecksssss = "SELECT * FROM fastbid_inspection_measurement_roof WHERE Prospect_API = '".$prosapi."'";           
foreach ($pdo->query($RoofDecksssss) as $RoofDeck) { 
                 foreach ($RoofPitch as $Pitch) { 
                    $TearOff_Labor_PerPitch = "SELECT * FROM fastbid_labor_tearoff WHERE pitch = '".$Pitch['roof_pitch']."'";
                        foreach ($pdo->query($TearOff_Labor_PerPitch) as $TearOffCost) {
                            $LaborCost = $TearOffCost['labor_cost'];
                            $RoofDeckSQFT = $RoofDeck['roof_deck'];
                            $GroundDropCost = $TearOffCost['ground_drop'] * DeckSqFT_toRawSquare($RoofDeckSQFT);
                            $Total_Labor += $LaborCost *  DeckSqFT_toRawSquare($RoofDeckSQFT);

                            $TotalLaborTearOffCost = $GroundDropCost + $Total_Labor;

                            echo $TotalLaborTearOffCost;
                        }

                } 

            }

【问题讨论】:

    标签: php foreach


    【解决方案1】:

    我认为,如果您希望它正确求和,则需要将此代码移到当前所在的循环之外。

    echo $TotalLaborTearOffCost;
    

    按照您现在的方式,每次循环迭代都会得到 1 个输出。

    【讨论】:

    • 没错,我退出了一个,它可以工作。现在我收到一个错误“PHP 警告:非法字符串偏移 'roof_pitch'”
    猜你喜欢
    • 2020-05-13
    • 2023-03-13
    • 1970-01-01
    • 2014-05-10
    • 2013-11-14
    • 1970-01-01
    • 1970-01-01
    • 2020-01-23
    • 1970-01-01
    相关资源
    最近更新 更多