未定义的偏移量和未定义的变量问题

时间:2017-03-01 22:54:31

标签: php arrays variables warnings undefined-index

在尝试运行以下代码时,我的浏览器会一直响应以下错误。如何修复以下代码,以便这些错误不再出现?

要清楚,这些错误仅出现在包含以下各项的行中:

  

$ 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;
}

错误:

  

注意:未定义的偏移量:第9行的medium.php中的0

     

注意:未定义的变量:在第10行的medium.php中匹配

1 个答案:

答案 0 :(得分:0)

Undefined offset是一个越界错误:您正在尝试从不存在的数组中获取值。例如。如果您的数组有两个值,索引为01,而$middleval等于1,则$arr的值不会为{{ 1}},即未设置$middleval + 1

第二条错误消息告诉您,您正在尝试使用未定义的变量$arr[2]

您可能需要查看this code review answer