在文本文件中添加价格列以显示总计

时间:2016-04-04 10:51:39

标签: php

需要一些帮助。我有一个文本文件,其中包含客户选择购买的产品。我只想知道如何在特定列中添加从上到下的所有值。

文本文件示例。

40“非商用LED显示器(海信); 1; 4735.00; 4440.00; 4175.00; 4055.00

软件许可费 - 1年; 1; 1155.00; 1155.00; 1155.00; 1100.00

所以你可以看到有六列。我想在这些列中添加所有值。例如:第3列将加起来(4735.00 + 1155.00)= 5890.00。

请帮忙。

2 个答案:

答案 0 :(得分:2)

所涉及的步骤是:

  1. 获取变量中的文件内容。您可以使用file_get_contents或fread。
  2. 获取阵列中的所有行。
  3. 获取数组中行的所有单独数据
  4. 使用分隔数据计算总价。
  5. 示例:

    <?php
    $File_Contents = file_get_contents("test.txt");
    
    $All_Lines = array();
    if (preg_match("/\n/", $File_Contents)){
        $All_Lines = explode("\n", $File_Contents); //separate by lines
    }else{
        $All_Lines[] = $File_Contents; //contains only one line;
    }
    
    $Total_Price = 0;
    if (count($All_Lines) != 0 AND trim($File_Contents) != ""){
        foreach($All_Lines as $Line){
            $Line = trim($Line); //remove whitespace
            if ($Line != ""){
                $Separators = explode(";", $Line); //now you can access the separators using $Separators[0],[1]
                if (isset($Separators[2]) AND is_numeric($Separators[2])){
                    $Price = $Separators[2];
                    $Total_Price += $Price;
                }
            }
        }
        echo "<b>Total Price:</b> {$Total_Price}";
    }else{
        echo "No data";
    }
    ?>
    

答案 1 :(得分:1)

同样,但更容易

$col_num = 2;

$arr = array_map(function($v) { return explode(';', $v); }, file("test.txt"));
echo array_sum(array_column($arr, $col_num));