2016-08-22 6 views
-2

에서 정의되지 않은 오프셋 : 0 우선 컬렉션 메서드를 사용하여 컬렉션으로 배열을 변환 한 다음이 컬렉션에서 일부 프로세스를 수행합니다 ... 하지만 오프셋 오류가 있습니다! 내 실수는 어디에서 말해 줄 수 있습니까?laravel 컬렉션

public function MassTransferCh2Q1() 
{ 


    $a1 = range('1', '40', '0.3'); 
    $a2 = range('4', '44', '0.3'); 
    $a3 = range('1', '40', '0.5'); 
    $a4 = range('5', '45', '0.5'); 

    $calculated = []; 

    //calculate #36 Answers array 
    for ($i = 0; $i <= 35; $i++){ 

     $calculated[$i] = ($a1[$i]/($a1[$i]+$a2[$i]))*(-1*$a3[$i]) + ($a2[$i]/($a1[$i]+$a2[$i]))*($a4[$i]) ; 
     $calculated[$i] = $this->truncate_number($calculated[$i]); 

    } 

    //Convert $calculated Array to a Collection 
    $results = collect($calculated); 


    for ($i = 0; $i <= count($results); $i++){ 

     //select Correct answer 
     $correctAnswer = $results->only($i); 

     //delete correct answer from calculated collection, so $calculate collection will be equal to incorrect answers ... 
     $incorrectAnswers = $results->except($i); 

     //select 5 random item from incorrect answers collection 
     $randIncorrectAnswers = $incorrectAnswers->random(5); 


     $answerModel = New Answer(); 


     $answerModel->correct_ans = $correctAnswer; 
     $answerModel->question_id = '1'; 

     for($n = 0; $n <= 5; $n++){ 
      $answerModel['incorrect_ans_'.$i] = $randIncorrectAnswers[$n]; 
     } 

     $answerModel->save(); 


    } 
    return $results; 



} 
+0

어떤 줄에 오류가 있습니까? –

+0

'count ($ results)'대신'$ results-> count()'를 사용하고'<='를'<' –

답변

1

난 당신의 코드를 테스트하지 않았다, 그러나이 선이 잘못 나에게 같습니다

for ($i = 0; $i <= count($results); $i++) 

을하고 있어야한다 :

당신은 인덱스 0으로 시작
for ($i = 0; $i < count($results); $i++) 

, 결과에 36 개의 항목이있는 경우 $ result [36]에 액세스하려고하지만 존재하지 않습니다.