вычисление среднего значения последних значений в PHP с использованием Queue

Моя проблема проста для понимания, мне нужно зациклить таблицу и вычислить среднее значение для каждого из последних 4 значений. Я пытаюсь использовать очередь, чтобы нажать текущее значение и вытолкнуть первое значение нажал.

У меня есть 2 проблемы, Queus работает как стек, когда я поп, последнее значение выходит, а не первое

$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]; в очереди?

Спасибо

0

Решение

Как сказано в документации (http://php.net/manual/ro/class.splqueue.php ), если вы используете push() а также pop() он будет вести себя как стек. использование enqueue() а также dequeue()

Если вы хотите получить среднее значение за последние 4 значения, вы можете создать новый массив, содержащий 4 значения из вашей очереди dequeue()затем используйте array_sum($a)/ count($a) в теме

Если вы не хотите создавать новый массив, вы можете просто:

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

И вы можете масштабировать это, изменяя значение $ lastElements. Код не проверен

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]