我如何总结这一点

时间:2016-01-09 18:03:46

标签: php

我正在制作一个简单的提交表单,它将数据发送到另一个PHP文件并显示数据。我几乎刚开始学习PHP,所以请耐心等待。

表单有几种类型的输入,但我遇到的问题是复选框:

        <td><strong>Fyll</strong><br>
            <input type="checkbox" name="fyll[]" value="Bacon">
            Bacon<br>
            <input type="checkbox" name="fyll[]" value="Ananas">
            Ananas<br>
            <input type="checkbox" name="fyll[]" value="Ekstra ost">
            Ekstra ost<br>
            <input type="checkbox" name="fyll[]" value="Skinke">
            Skinke<br>
            <input type="checkbox" name="fyll[]" value="Sopp">
            Sopp<br>
        </td>

将数据发送到此文件:

                    $fyllPriser = array("Bacon" => 25,
                                    "Ananas" => 5,
                                    "Ekstra ost" => 10,
                                    "Skinke" => 10,
                                    "Sopp" => 15
                                    );

                    $fyll = $_POST['fyll'];
                    $fyllLenght = count($fyll);

                    for ($i = 0; $i < $fyllLenght; $i++){
                     echo "<span>";
                     echo $fyll[$i], ", </span>"; //<----- Displays all checked checkboxes
                     $fyllPris = $fyllPriser[$fyll[$i]]; //< Prices for each checked checkbox         
                     echo $fyllPris;
                    }

数组$ fyllPriser包含每个项目的价格,其中键与输入的值名称相同。 显示所有内容,但我想为每个选中的复选框汇总所有价格。

现在它显示如下:Bacon, Ananas, 我想删除最后一项后面的逗号,我该怎么做?

如果我也回应价格,我会得到这个:Bacon, 25Ananas, 5 在这种情况下,我想添加25 + 5 = 30并将总和放入变量中,以便稍后可以使用它来创建“总和”或其他东西。我该怎么做?

2 个答案:

答案 0 :(得分:3)

要删除字符串的最后一个字符,只需调用:

substr(0, strlen($string) - 1);

为了获得总数,您需要有一个变量来保持总数。然后你可以使用:

添加它

$total += $price;

$price对应映射中的价格。

答案 1 :(得分:2)

以下是解决方案:

        $fyll = $_POST['fyll'];
        $fylls = [];
        $totalPrice = 0;

        foreach ($fyll as $v){
           $fylls[] = "<span>". $v . "</span>";
           $totalPrice += $fyllPriser[$v];
        }
        echo implode(',', $fylls);
        echo "<span> total price: $totalPrice</span>";