Ошибка notice: undefined offset: 0 in c:\xampp\htdocs\kinomonster\index.php on line 35?

0

Ребят, что я делаю не так что выдает эту ошибку? КОД ниже

<?php

$i = 1;

/* while ($i <= 11) {
echo $i."<br>";
$i++;
} */

/* do {
echo $i."<br>";
$i++;
} while ($i <= 10); */

/* for ($i = 1; $i <= 10 ; $i++) {
echo $i."<br>";
} */


$arr[1] = "продукты";
$arr[2] = "напитки";
$arr[3] = "фрукты";
$arr[4] = "овощи";
$arr[5] = "кола";
$arr[6] = "сигареты";
$arr[7] = "игрушки";
$arr[8] = "ягоды";
$arr[9] = "пиво";
$arr[10] = "рыба";
$arr[11] = "мясо";
$arr[12] = "соль";

for ($i=0; $i <= count($arr); $i++) {
echo $arr[$i]."<br>";
}

?>

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>

</body>
</html>
php

4 ответов

0

Ошибка в цикле:

for ($i=0; $i <= count($arr); $i++) {
 Вы пишите, $i = 0, а ваш массив $arr начинаете задавать с 1, а так как цикл начинается с 0, программа не находит индекс массива $arr[0] и поэтому показывает ошибку.

0

не надо ставить <= просто < и все заработает

0

<?php

$mas = ["green","red","yellow","black","purple","white"];

$ran = mt_rand(0,count($mas)-1);

echo $mas[$ran].'<br>';



$svetafor = $mas[$ran];

switch($svetafor){
case 'green':
echo 'Можете переходить дарогу светафор зеленый';
break;
case 'red':
echo 'светафор краснный';
break;
case 'yellow':
echo 'Светафор желтый Подождите когда загариться зеленый';
break;
default:
echo "Светафор не работаеть";
break;
}
?>

0

Причину нашел, нету $arr[0] и нужно в цикле for поставить условие не <= а просто < .

Sign up or Log in to write an answer