Я использую массивы с ключами в качестве ключа для массива, в коде, как показано ниже,Использование массива с ключом, как массив ключевых
$team = array();
$counter = 0;
$sql = "SELECT Home, Away, Result, Points FROM schedule";
$schedulequery = mysqli_query($conn, $sql);
// divy out the points
if (mysqli_num_rows($schedulequery) > 0) {
while($teamrow = mysqli_fetch_assoc($schedulequery)) {
$points = $teamrow["Points"];
if ($teamrow["Result"] == "Home"){
$team[$teamrow["Home"]] = $team[$teamrow["Home"]] + $points;
}
if ($teamrow["Result"] == "Tie"){
$team[$teamrow["Home"]] = $team[$teamrow["Home"]] + ($points/2);
$team[$teamrow["Away"]] = $team[$teamrow["Away"]] + ($points/2);
}
if ($teamrow["Result"] == "Away"){
$team[$teamrow["Away"]] = $team[$teamrow["Away"]] + $points;
}
if ($teamrow["Result"] == "HomeForfeit"){
$team[$teamrow["Home"]] = $team[$teamrow["Home"]] - $points;
$team[$teamrow["Away"]] = $team[$teamrow["Away"]] + $points;
}
if ($teamrow["Result"] == "AwayForfeit"){
$team[$teamrow["Home"]] = $team[$teamrow["Home"]] + $points;
$team[$teamrow["Away"]] = $team[$teamrow["Away"]] - ($points/2);
}
if ($teamrow["Result"] == "DuelForfeit"){
$team[$teamrow["Home"]] = $team[$teamrow["Home"]] - ($points/2);
$team[$teamrow["Away"]] = $team[$teamrow["Away"]] - ($points/2);
}
}
}
Этот код работает и успешно обновляя в моей MySql таблицы (эта часть кода не включена) каждый раз, когда используется одна из этих строк, я получаю сообщение об ошибке «Уведомление PHP: Неопределенный индекс:».
Является ли эта плохая практика или это неправильный синтаксис? Я смущен, почему он работает, но все же говорит мне неопределенный индекс.
EDIT: Линии, которые являются ошибками, все время я получаю доступ к строке с двойным массивом типа «$ team [$ teamrow [" Home "]]". Каждый раз, когда к одному из них обращаются, я получаю сообщение об ошибке.
EDIT: Кажется, я понял. Я создаю новый ключ в массиве, который еще не существует?
Какая строка является ошибкой? – Machavity