2017-03-01 7 views
0

아래 코드를 실행하려고 시도하는 동안 내 브라우저는 아래 오류로 계속 응답합니다. 아래의 코드를 수정하면 더 이상 이러한 오류가 나타나지 않을 수 있습니다.정의되지 않은 오프셋 및 정의되지 않은 변수 문제

명확하게하려면, 이러한 오류는 아래의 각이 포함 된 라인에만 나타납니다

$high = $arr[$middleval+1];

$median = (($low+$high)/2);

감사

코드 :

function median($arr) 
{ 
    sort($arr); 
    $count = count($arr); //count the number of values in array 
    $middleval = floor(($count-1)/2); // find the middle value, or the lowest middle value 
    if ($count % 2) { // odd number, middle is the median 
     $median = $arr[$middleval]; 
    } else { // even number, calculate avg of 2 medians 
     $low = $matches[0]; 
     $high = $arr[$middleval+1]; 
     $median = (($low+$high)/2); 
    } 
    return $median; 
} 

오류 :

Notice: Undefined offset: 0 in medium.php on line 9

Notice: Undefined variable: matches in medium.php on line 10

+0

코드에'$ matches' 변수가 없으므로 두 번째 오류를 어떻게 얻을 수 있는지 보지 못합니다. – Barmar

+0

$ low = $ matches [0]; – user7644146

+0

'$ arr'이 비어 있으면이 오류가 발생합니다. '$ count = 0'은 짝수 일 뿐이고 존재하지 않는'$ arr [0]'에 접근하려고 시도합니다. – Barmar

답변

0

Undefined offset은 범위를 벗어난 오류입니다 : 존재하지 않는 배열에서 값을 가져 오려고합니다. 예 : 배열에 01의 두 값이 있고 $middleval1 인 경우 $arr$middleval + 1에 값이 없습니다. 즉 $arr[2]이 설정되어 있지 않습니다.

두 번째 오류 메시지는 사용자가 정의되지 않은 변수 $matches을 사용하려고한다는 것을 알려줍니다.

this code review answer을 볼 수 있습니다.

+0

내 코드를 수정했습니다. 사과하다 – user7644146