开发者

Any 'other' way to SUM variables using PHP?

In a form I have, a consumer can choose to add a blood test, a vision test, or both (combo) to several enrollee's accounts. This is all done at one time. Based on the choice made, I am able to select the 'choice' and echo a respective price but am having the hardest time building a script to 'add or sum' all the variables together.

I am aware of the array_sum() feature but am either a) not using it correctly, b) does not apply in my case.

A sample of the code I have is:

    <tr>
        <td>Test(s) Ordered:</td>
        <td>
        <?php
            if($_SESSION['F'.$j.'Tests'] == "Blood") {
                $prem = "62.95";
                echo "Blood Test - $".$prem." per month";
            }
            elseif($_SESSION['F'.$j.'Tests'] == "Vision") {
                $prem = "60.00";
                echo "Vision Test - $".$prem." per month";
            }
            elseif($_SESSION['F'.$j.'Tests'] == "BVCombo") {
                $prem = "122.95";
                echo "Blood and Vision - $".$prem." per month";
            }
        ?>
        </td>

Where $j is the number of the enrollee determined in a FOR loop above. This $j variable can range from 1 to 16 and i will never know how many enrollees until the enrollment is complete from person to person.

Ultimately, I am trying to accomplish the following code but cannot figure how to do so:

$sum = $prem1 + $prem2 + $prem3 + $prem4

where $prem1 and $prem2 relate to the specific individuals. Each individual will only have a single premium total so $prem1 may equal $62.95, 60.00, or 122.95 and so on for succeeding enrollees.

**

Final Solution Used

** I first created the $total = array(); variable outside of the FOR loop for开发者_Python百科 my entire form. Then:

        <?php
            if($_SESSION['F'.$j.'Tests'] == "Blood") {
                $prem = "62.95";
                echo "Blood Test - $".$prem." per month";
                $total[] = $prem;
            }
            elseif($_SESSION['F'.$j.'Tests'] == "Vision") {
                $prem = "60.00";
                echo "Vision Test - $".$prem." per month";
                $total[] = $prem;
            }
            elseif($_SESSION['F'.$j.'Tests'] == "BVCombo") {
                $prem = "122.95";
                echo "Blood and Vision - $".$prem." per month";
                $total[] = $prem;
            }
        ?>

Finally, outside of the loop altogether:

<?php 
    } 
    $summ = array_sum($total);
    $premiumtotal = number_format($summ,2,'.','');
    echo "$".$premiumtotal;
?>

Thanks for all the help!


In order to use array_sum you need an array. Store all the parcels in an array, like this:

$prem = array();
while (cond()) {

    //...
    if (cond2())
        $prem[] = 60;
    //...
}
$total = array_sum($prem);

I hope you got the idea.


You could do something like this:

   <tr>
        <td>Test(s) Ordered:</td>
        <td>
        <?php

            if($_SESSION['F'.$j.'Tests'] == "Blood") {
                $prem = "62.95";
                $total += $prem;
                echo "Blood Test - $".$prem." per month";
            }
            elseif($_SESSION['F'.$j.'Tests'] == "Vision") {
                $prem = "60.00";
                $total += $prem;
                echo "Vision Test - $".$prem." per month";
            }
            elseif($_SESSION['F'.$j.'Tests'] == "BVCombo") {
                $prem = "122.95";
                $total += $prem;
                echo "Blood and Vision - $".$prem." per month";
            }
        ?>
        </td>

EDIT: I misunderstood the question, and see that you want the total for all enrollees. The code has been changed to do that.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜