用于图形的while循环中的PHP减法

时间:2011-01-21 12:10:46

标签: php math while-loop

我有这段代码:

$previous = 0;
        while($row = mysql_fetch_array($result)){
            $difference = $row['steam'] - $previous;
            $strXML .= "<set name='".date("G:i:s", strtotime($row["tstamp"])).  "' value='".$difference."' color='AFD8F8' />";
            $previous = $row['steam'];
        }

此代码在第一个结果之后的每个结果都很好用。如果我可以解释,$ previous从0开始,所以条形图上的第一个块实际上出现在3334,因为3334 - 0 = 3334,但从那时起我得到的正是我想要的因为它在实际值之间进行数学运算。我该如何解决第一个结果?

由于

2 个答案:

答案 0 :(得分:2)

如果您正在绘制值的变化图表,那么跳过第一个值会不会更有意义吗?我在下面放了一个代码示例。

我不确定在第一次循环中你想要的确切值是什么。

$previous = 0;
$firstRun = true;
    while($row = mysql_fetch_array($result)){
        $difference = $row['steam'] - $previous;
        if (!$firstRun)
          $strXML .= "<set name='".date("G:i:s", strtotime($row["tstamp"])).  "' value='".$difference."' color='AFD8F8' />";
        $previous = $row['steam'];
        $firstRun = false;
    }

答案 1 :(得分:1)

取决于您的应用程序逻辑。如果尚未设置$difference,则为Sam的答案提供替代方法,您可以将其设置为零。

$difference = isset($difference) ? $row['steam'] - $previous : 0;