PHP:从一个变量动态添加每个输出的值

PHP:从一个变量动态添加每个输出的值,php,wordpress,variables,math,dynamic,Php,Wordpress,Variables,Math,Dynamic,因此,我正在使用ACF制作一个WP模板,其中有一个表。在此表中,您希望添加一些结果。现在,为了得到总金额,我必须添加所有$price的值,每个值都会有所不同,因为它位于中继器字段中 那么,我如何创建动态变量,然后将它们的值添加到新变量中呢 我的代码: <?php if (get_sub_field('offer_pr_ob')): while(has_sub_field('offer_pr_ob')): $qt = floatval(get_sub_field('

因此,我正在使用ACF制作一个WP模板,其中有一个
。在此表中,您希望添加一些结果。现在,为了得到总金额,我必须添加所有
$price
的值,每个值都会有所不同,因为它位于
中继器字段中

那么,我如何创建动态变量,然后将它们的值添加到新变量中呢

我的代码:

<?php if (get_sub_field('offer_pr_ob')): while(has_sub_field('offer_pr_ob')): 
            $qt = floatval(get_sub_field('offer_pr_ob_qt'));
            $hrs = floatval(get_sub_field('offer_pr_ob_hrs'));
            $hrsRt = floatval(get_sub_field('offer_pr_ob_hrs-rt'));
            $hrsTot = $qt * $hrs;
            $price = $hrsTot * $hrsRt;
            $priceVat = $price * 1.25;  
            $priceTot = $price + $price; <-- this just outputs the value of 

the latest $price, e.g. "price*2" -->
?>
                                <tr class="pricingObject">
                                    <td><?php the_sub_field('offer_pr_ob_typ'); ?></td>
                                    <td><?php echo $qt; ?></td>
                                    <td><?php the_sub_field('offer_pr_ob_hrs-rt'); ?>.-</td>
                                    <td>
                                        <?php echo $hrs; ?>/<?php the_sub_field('offer_pr_ob_per'); ?></td>
                                    <td>

                                        <?php echo $hrsTot;?>h/&aring;r</td>
                                    <td><?php echo $price;.-</td>
                                    <td><?php echo $priceVat;?>.-</td>
                                </tr>
                                <?php endwhile; endif;?>
                                <tr class="pricingResult">
                                    <th>Total &aring;rskostnad</th>
                                    <th>&nbsp;</th>
                                    <th>&nbsp;</th>
                                    <th>&nbsp;</th>
                                    <th>&nbsp;</th>
                                    <th><?php echo $priceTot; ?>.-</th>
                                    <th>10 790 000.-</th>
                                </tr>
                            </table>
                    </div>
                    <?php endwhile; endif; ?>

.-
/
h/å;R
.-
总计å;罗斯科斯特纳德
.-
10 790 000.-

您需要在while循环之外设置变量:我还将其更改为将价格添加到正在递增的变量中。变量仅在创建它们的循环中存在,而在while循环之外的任何东西都不能使用它

每次它循环之前的$priceTot都会被遗忘,这就是为什么我们需要将它设置在循环之外,以便它保留所有以前的值,不要将while循环视为一个代码位,将其视为nx块。。。每次它运行时,本质上是一个新的代码块,每次它完成时,代码都结束了,信息从内存中清除

<?php 
$priceTot = 0;
if (get_sub_field('offer_pr_ob')): while(has_sub_field('offer_pr_ob')): 
        $qt = floatval(get_sub_field('offer_pr_ob_qt'));
        $hrs = floatval(get_sub_field('offer_pr_ob_hrs'));
        $hrsRt = floatval(get_sub_field('offer_pr_ob_hrs-rt'));
        $hrsTot = $qt * $hrs;
        $price = $hrsTot * $hrsRt;
        $priceVat = $price * 1.25;  
        $priceTot = $priceTot + $price; <-- this just outputs the value of 

您需要在while循环之外设置变量:我还将其更改为向正在递增的变量添加价格。变量仅在创建它们的循环中存在,而在while循环之外的任何东西都不能使用它

每次它循环之前的$priceTot都会被遗忘,这就是为什么我们需要将它设置在循环之外,以便它保留所有以前的值,不要将while循环视为一个代码位,将其视为nx块。。。每次它运行时,本质上是一个新的代码块,每次它完成时,代码都结束了,信息从内存中清除

<?php 
$priceTot = 0;
if (get_sub_field('offer_pr_ob')): while(has_sub_field('offer_pr_ob')): 
        $qt = floatval(get_sub_field('offer_pr_ob_qt'));
        $hrs = floatval(get_sub_field('offer_pr_ob_hrs'));
        $hrsRt = floatval(get_sub_field('offer_pr_ob_hrs-rt'));
        $hrsTot = $qt * $hrs;
        $price = $hrsTot * $hrsRt;
        $priceVat = $price * 1.25;  
        $priceTot = $priceTot + $price; <-- this just outputs the value of 

哎呀,谢谢,这比预想的容易多了。我真的不明白背后的逻辑,如果你有时间解释的话,这里到底发生了什么?o_O@CarlPapworth希望我的编辑能更好地解释这一点,更多的问题不要害怕问你的同伴,这澄清了一点:)你让我聪明了一点。天啊,谢谢,这比预期的容易多了。我真的不明白背后的逻辑,如果你有时间解释的话,这里到底发生了什么?o_O@CarlPapworth希望我的编辑能更好地解释这一点,更多的问题不要害怕问你的同伴,这澄清了一点:)你让我更聪明了一点。