0

第一次发帖,所以我希望你能帮助我完成我认为是一项简单但无法弄清楚的任务。

我有一个名为exports 的表,其中有一个year 和value 字段。我目前有 1992 年至 2011 年的数据。

我想要做的是从数据库中提取这些数据,然后计算同比百分比差异并将结果存储在数组中,以便可以将数据传递到视图文件。

例如:((1993-1992)/1992)*100) 然后 ((1994-1993)/1993)*100) 然后 ((1995-1994)/1994)*100) 等等。

我需要它灵活,以便我可以添加未来的数据。例如,我最终将添加 2012 年的数据。

我真的很困惑如何推进这一点。帮助将不胜感激。

4

1 回答 1

0

如果我理解正确,解决方案就不必那么复杂。一个简单的 SELECT 查询来获取年份和值,然后您可以在 PHP 中使用循环并计算百分比。像这样的东西:

<?php
// Get all the data from the database.
$sql = "SELECT year, value FROM exports";
$stmt = $pdo->query($sql);

// An array to store the precentages.
$percentages = [];

// A variable to keep the value for the last year, to be
// used to calculate the percentage for the current year.
$lastValue = null;

foreach ($stmt as $row) {
    // If there is no last value, the current year is the first one.
    if ($lastValue == null) {
        // The first year would always be 100%
        $percentages[$row["year"]] = 1.0;
    }
    else {
        // Store the percentage for the current year, based on the last year.
        $percentages[$row["year"]] = (float)$row["value"] / $lastValue;
    }

    // Overwrite the last year value with the current year value
    // to prepare for the next year.
    $lastValue = (float)$row["value"];
}

结果数组如下所示:

array (
    [1992] = 1.0,
    [1993] = 1.2,
    [1994] = 0.95
    ... etc ...
)
于 2013-06-16T23:27:33.177 回答