如何在foreach循环中节省价值?

时间:2015-04-22 10:21:06

标签: php json foreach

我在PHP中有foreach循环。它将通过json项目,并且每个项目我都有价值变化。我设定我的周期每20分钟运行一次。

我需要保存我的值,下次foreach运行该项时我需要在开头的旧值中赋值给变量,这样我就可以比较foreach循环中的旧值和新值。

这是代码:

// Parse results and extract data to display
foreach($json as $quote)
{
    //add before value
    $state1 = $state2;

    // assign object elements to vars
    $q_change  = $quote->c;
    $q_price   = $quote->l;
    $q_name    = $quote->t;
    $q_changep = $quote->cp;
    $q_symbol  = $quote->t;
    $q_ltrade  = $quote->lt;
    $q_exch    = $quote->e;

    $state2 = $q_change;

    $parametar = $q_change - $state1;

    // Define class based on change
    if ( $parametar < -0.3 ) { $chclass = "minus"; }
    else if ( $parametar > 0.3 ) { $chclass = "plus"; }
    else if ( $q_change < 0 ) { $chclass = "minus"; }
    else if ( $q_change > 0 ) { $chclass = "plus"; }
    else { $chclass = "zero"; $q_change = "0.00"; }
}

知道这可能有用吗?

2 个答案:

答案 0 :(得分:0)

您必须在文件系统上保存JSON以在后续运行中检索值:

$oldJsonFile = '/path/to/data.json';

if (is_file($file)) {
    $oldJson = file_get_contents($oldJsonFile);
}

// Do the work, and then store it back to the file system

file_put_contents($cacheFile, $newJson);

答案 1 :(得分:0)

我想你想做的事情如下。会话将存储您的数据以供下一次foreach执行。

session_start();
$previousData = $_SESSION['PreviousData'];

foreach($array as $key => $value){
    //... all your foreach calculations
    //end of foreach
}

$_SESSION['PreviousData'] = $thisData;

或者,您可以将数据存储到数据库中,这就是它们的用途。然后,您可以自由地对过去的记录等进行各种有趣的查询。