2014-09-20 6 views
0

제 문제는 이해하기 쉽습니다. 테이블을 반복하고 마지막 4 개의 값의 평균을 계산해야합니다. 큐를 사용하여 현재 값을 밀어 넣고 첫 번째 값을 밀어 넣으려고합니다. 나는 팝업 때 나는이 문제가큐를 사용하여 PHP에서 마지막 값의 평균을 계산하십시오.

에서, Queus는, 스택으로 작동, 마지막 값은 밖으로가 아니라 내가이 배열을 원하는 ([0] => 1 [1] => 2 [2] => 3 [3] => 4))

으로이 배열을 얻을 첫 번째

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

간다 as ([0] => 2 [1] => 3 [2] => 4 [3] => 5))

두 번째 문제는 대기열에 array_sum($q)/$counter[$q];을 어떻게 사용합니까? 이 문서 (http://php.net/manual/ro/class.splqueue.php)에 있다고 당신이 push()pop() 그것이 스택처럼 행동합니다 사용하는 경우

, 당신

답변

0

감사드립니다. 마지막으로 4 개 개의 값의 평균을 얻고 싶은 경우에 당신이 그런 다음 큐 dequeue()의 4 개 값을 포함하는 새 배열을 만들

당신이 원하지 않는 경우에 array_sum($a)/ count($a)을 사용할 수 enqueue()dequeue()

를 사용하여

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

그리고 당신은 $ lastElements 이뤄졌다는 점이고 코드를 변경하여 확장 할 수

테스트되지 않은 : 새로운 배열을 만들 간단히 할 수
관련 문제