2014-04-25 4 views
-1

Undefined offset error을받는 이유는 무엇입니까? 배열의 각 요소에 10,20,20을 추가하려고합니다. 도와주세요. 미리 감사드립니다정의되지 않은 오프셋 오류가 발생했습니다.

<?php 
    $arr = array("a","b","c"); 
    $counter = 0; 
    $status = array(); 
    foreach($arr as $a){ 
     $status[$counter] += 10; 
     $status[$counter] += 20; 
      $status[$counter] += 20; 
     echo $status[$counter]."<br>"; 
     $counter ++; 
    } 
?> 

오류 :

Notice: Undefined offset: 0 in C:\xampp\htdocs\test\index.php on line 6 
300 

Notice: Undefined offset: 1 in C:\xampp\htdocs\test\index.php on line 6 
300 

Notice: Undefined offset: 2 in C:\xampp\htdocs\test\index.php on line 6 
300 
코드에서

`

+0

왜'$ status [$ counter] + = 50;가 아닌가? –

+0

@Jack, Idk 왜'$ counter'가 필요한지,'key' 자체를 사용할 수 없습니까? 꽤 불분명 한 질문. –

+1

@ShankarDamodaran 잘 모르겠습니다 :) –

답변

0

$status 당신이 정의되지 않은 인덱스에 무언가를 추가하려고 할 때 그래서 당신은 그 통지를 볼 수 빈 배열입니다 (처음에만).

$arr의 요소 수에 따라 값이 0 배열로 $status을 초기화하려면 : 당신은 '추가 지정'연산자를 사용하는

$status = array_fill(0, count($arr), 0); 
0

. 그냥 값을 지정하려면

다음

$status[$counter] = 10; 

는 잘 작동합니다.

그러나 PHP는 배열의 기존 요소에 무언가를 추가하라고 요청하고 있지만 초기화하지 않았으므로 아직 요소가 없습니다. 루프를 시작하기 전에 배열을 초기화하십시오.

1

이 라인에서 정의되지 않은 배열 요소에 열을 추가하려고 :

$status[$counter] += 10; 

이 같은 시도 :

$arr = array("a","b","c"); 
    $counter = 0; 
    $status = array(); 
    foreach($arr as $a){ 
    $status[$counter] = 10;//assign first 
    $status[$counter] += 20; //concate with assigned element 
    $status[$counter] += 20; 
    echo $status[$counter]."<br>"; 
    $counter ++; 
} 

는 어떤 통지를 제공하지 않아야합니다.

+0

잭과 마이크가 12 분 전에 말한 것과 똑같지 않습니까? –

관련 문제