PHP错误未定义的偏移量

PHP错误未定义的偏移量,php,undefined,offset,Php,Undefined,Offset,收到通知:未定义偏移量:25英寸 C:\wamp\www\finalProjectDemo\search.php,第32行 我试图从一个文件中读取,并在其中搜索一个特定的名称和地址以进行输出。我知道数据库最好。这是我给大家的一个课堂作业,特别是这样安排的。我相信我几乎拥有了一切,但我只是遇到了这个问题。对PHP来说相当陌生 我有以下代码: <html> <body> <?php // read lines into array // search array for

收到通知:未定义偏移量:25英寸 C:\wamp\www\finalProjectDemo\search.php,第32行

我试图从一个文件中读取,并在其中搜索一个特定的名称和地址以进行输出。我知道数据库最好。这是我给大家的一个课堂作业,特别是这样安排的。我相信我几乎拥有了一切,但我只是遇到了这个问题。对PHP来说相当陌生

我有以下代码:

<html>
<body>
<?php
// read lines into array
// search array for string
// get 7 lines from there.
$i = 0;
$fileName = "addresses.txt";
$readFile = fopen($fileName, 'r');
$readByLineArray = array();

// Get search string from submission
$searchFirstName = $_POST['searchFirstName'];
$searchLastName = $_POST['searchLastName'];
$searchFirstNameSuccess = 0;
$searchLastNameSuccess = 0;

while (!feof($readFile))
{
    $readByLineArray[$i] = fgets($readFile);

//echo "$readByLineArray[$i] read from array position $i";
//echo "<br />";
$i++;
}
fclose($readFile);

$arrLength = count($readByLineArray);
$currentArrayPosition = 0;

for ($x=0;$x<=$arrLength;$x++){
    if ($searchFirstName == $readByLineArray[$x])
    {
        $searchFirstNameSuccess = 1;
        $x++;
        if ($searchLastName == $readByLineArray[$x])
        {
            $searchLastNameSuccess = 1;
            $currentArrayPosition = $x - 1;
        } else {
            $searchFirstNameSuccess = 0;
        }
    }


}

for ($y=0;$y<=7;$y++){
    echo "$readByLineArray[$currentArrayPosition]<br />";
    $currentArrayPosition++;
}





?>
</body>
</html>

谢谢你的帮助


Ben---

像这样更改
循环的

for ($x=0;$x<$arrLength;$x++){ //<--- Should be < and not <=
试试foreach:-

foreach ($readByLineArray as $temp){
if ($searchFirstName == $temp)
{
    $searchFirstNameSuccess = 1;
    $x++;
    if ($searchLastName == $temp)
    {
        $searchLastNameSuccess = 1;

    } else {
        $searchFirstNameSuccess = 0;
    }
}
}

我的if语句部分似乎也有问题。上一次调整修复了上一个问题,但无论我做什么,它似乎都无法成功比较和读取的每一行。实际上,在本例中,您试图做什么,似乎可以做得更简单。抱歉。我看错了你的回答。我正在尝试使用嵌套的IF语句来比较$searchFirstName和$readByLineArray[$x]。它基本上是读取已写入txt文件的姓名和地址,并与搜索字符串进行比较,以仅输出此人的姓名和地址。我知道数据库会更简单,但我没有那么奢侈,我正试图用一个文本文档创建类似的东西。。逐行检查数组中的名字和姓氏,如果找到匹配项,应该从数组中断开,对吗?
foreach ($readByLineArray as $temp){
if ($searchFirstName == $temp)
{
    $searchFirstNameSuccess = 1;
    $x++;
    if ($searchLastName == $temp)
    {
        $searchLastNameSuccess = 1;

    } else {
        $searchFirstNameSuccess = 0;
    }
}
}