В моем PHP кода у меня есть следующий код:Сравнение индексов внутри цикла
function readPopulateArray($name) {
$you = explode(",", readSetUser($name));
$singles = fopen("singles.txt", "r") or die("Unable to open file");
//print_r($line[]);
while(!feof($singles)) {
$lineRead = fgets($singles);
$matches = explode(",", $lineRead);
if(($matches[0] != $you[0]) && ($matches[1] != $you[1]) && ($matches[3] == $you[3]) && ($matches[4] == $you[4])&& ($matches[5] <= $you[5] && $matches[6] >= $you[6]))
{
echo $lineRead;
}
}
}
Цель фрагменте кода выше, сравнить $ вас с возможными $ спичек. Это происходит в инструкции if, и для целей тестирования я просто хочу повторить $ lineRead. Тем не менее, когда я запускаю его, возникает следующая ошибка:
"Notice: Undefined offset: 3 in /Applications/MAMP/htdocs/practice/matches-submit.php on line 47"
Строка 47 - это строка, в которой находится оператор if. В настоящее время я просто изучаю php, однако я смущен тем, почему я получаю эту ошибку, потому что знаю, что я могу легко получить доступ к индексам $ matches и $ you, просто позвонив $ matches [0], который вернет имя, $ matches [1] пол и т. д. это не способ сравнения компонентов массива друг с другом в php?
Я видел упоминание array_map, но мне не нужен простой метод сравнения да/нет, но он требует немного больше.
Edit: Пример того, как singles.txt выглядит следующим образом:
Ada Lovelace,F,96,ISTJ,Linux,24,99
Adele Goldberg,F,65,ENFJ,Windows,50,70
Anakin Skywalker,M,27,INTJ,Linux,15,30
Angry Video Game Nerd,M,29,ISTJ,Mac OS X,1,99
Anita Borg,F,54,ISFP,Windows,41,55
Barbara Liskov,F,71,ESFJ,Mac OS X,41,76
Bill Gates,M,52,INTJ,Windows,2,99
Bill Joy,M,54,ENFP,Linux,50,70
...
Любая специальная причина, по которой вы не используете базу данных? и текстовые файлы - это так много работы по сравнению с db. –
нужно будет увидеть образец файла singles.txt, чтобы иметь возможность помочь – nogad
Ошибка говорит вам, что $ matches [3] или $ you [3] не существует. Print_r ($ matches) и переменные $ you, чтобы проверить, что они вернут. –