【问题标题】:calculating the average of last values in PHP using Queue使用队列计算 PHP 中最后一个值的平均值
【发布时间】:2014-09-20 09:36:12
【问题描述】:

我的问题很容易理解,我需要循环一个表并计算每个最后 4 个值的平均值。我尝试使用 Queue 来推送当前值并弹出第一个推送的值。

我有 2 个问题,队列作为堆栈工作,当我弹出时,最后一个值消失而不是第一个值

$q = new SplQueue();
$q->push(1);
$q->push(2);
$q->push(3);
$q->push(4);
$q->push(5);
$q->pop();

我得到这个数组为( [0] => 1 [1] => 2 [2] => 3 [3] => 4 ) )

我希望这个数组为( [0] => 2 [1] => 3 [2] => 4 [3] => 5 ) )

第二个问题,如何在队列中使用array_sum($q) / $counter[$q];

谢谢

【问题讨论】:

    标签: php queue


    【解决方案1】:

    正如文档 (http://php.net/manual/ro/class.splqueue.php) 中所说,如果您使用 push()pop() 它将表现得像一个堆栈。使用enqueue()dequeue()

    如果要获取最后 4 个值的平均值,可以创建一个包含队列 @9​​87654326@ 的 4 个值的新数组,然后在其上使用 array_sum($a)/ count($a)

    如果您不想创建新数组,您可以简单地:

    $sum = 0;
    $lastElements = 4;
    for($i = 0;$i<$lastElements;$i++)
       $sum+= $q.dequeue()
    echo $sum/$lastElements;
    

    您可以通过更改 $lastElements 值来扩展它。代码未经测试

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-06
      • 1970-01-01
      • 2020-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多