未定义的偏移量和未定义的变量问题 [重复]

Undefined offset and Undefined variable issue [duplicate]

提问人:user7644146 提问时间:3/2/2017 最后编辑:user7644146 更新时间:3/2/2017 访问量:1526

问:

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

需要明确的是,这些错误仅出现在包含以下各项的行上:

$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 行中 .php 中的 0

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

php 数组 变量 警告 undefined-index

评论

0赞 Barmar 3/2/2017
代码中没有变量,我不明白你怎么会得到第二个错误。$matches
0赞 user7644146 3/2/2017
$low = $matches[0];
0赞 Barmar 3/2/2017
如果为空,则会收到此错误。,这是偶数,然后你尝试访问 ,这不存在。$arr$count = 0$arr[0]
0赞 user7644146 3/2/2017
我最初发布的版本是旧版本。现在有正确的版本。对此深表歉意。
0赞 Barmar 3/2/2017
好吧,你从来没有分配给 ,那么应该是什么?$matches$matches[0]

答:

0赞 Richard Turner 3/2/2017 #1

Undefined offset是越界错误:您正在尝试从不存在的数组中获取值。例如,如果你的数组有两个值,at indices 和 equals ,则 在 处没有值,即 未设置。01$middleval1$arr$middleval + 1$arr[2]

第二条错误消息告诉您您正在尝试使用未定义的变量。$matches

您可能需要查看此代码评审答案

评论

0赞 user7644146 3/2/2017
我已经编辑了我的代码。道歉