2017-03-01 14 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'はありません。どのようにして2番目のエラーが発生するのかわかりません。 – Barmar

+0

$ low = $は[0]と一致します。 – user7644146

+0

'$ arr'が空の場合、このエラーが発生します。 '$ count = 0'が偶数の場合、存在しない' $ arr [0] 'にアクセスしようとします。 – Barmar

答えて

0

明確にするため、これらのエラーは以下のそれぞれを含む行に表示されます

Undefined offsetは、範囲外のエラーです:存在しない配列から値を取得しようとしています。例えば。配列に01の2つの値があり、$middleval1に等しい場合、$arr$middleval + 1に値を持たない、つまり$arr[2]が設定されていません。

2番目のエラーメッセージは、定義されていない変数$matchesを使用しようとしていることを示しています。

this code review answerをご覧ください。

+0

自分のコードを編集しました。謝罪する – user7644146

関連する問題