2017-03-01 226 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$middleval等於1,$arr$middleval + 1處沒有值,即未設置$arr[2]

第二個錯誤消息告訴您,您正嘗試使用未定義的變量$matches。你可能想看看this code review answer

+0

我編輯了我的代碼。道歉 – user7644146