Ответов: 2 Просмотров: 145
|
Пробовал разобрать цикл на примере http://www.php.su/articles/?cat=examples&page=016, но не могу понять логику работы тела цикла и работу массива.
Нижу процитирую код и прокомментирую его от себя.
PHP:
скопировать код в буфер обмена
<? $arr = array (25 , 636 , 298 , 3 , 495 , 67 ); //придумываем шесть чисел $cnt = count($arr); //присваиваем эти числа переменной $cnt $min = $max = $arr[0]; //ЗДЕСЬ НЕ ПОНЯТНА ЛОГИКА. Я это понимаю так: переменным $min и $max присваивается нулевой индекс массива, в данном случае 25. А ЗАЧЕМ ПРИСВАИВАТЬ ЕГО НЕ ПОНЯТНО. $index_min = $index_max = 0; //ЗДЕСЬ ТОЖЕ НЕ ПОНЯТНА ЛОГИКА. Я понимаю так: переменным $index_min и $index_max присваивается значение 0. ОПЯТЬ Ж НЕПОНЯТНО ЗАЧЕМ. for ($i = 1; $i < $cnt; $i++) //начинаем отсчет c 1; если значение переменной $i достигнет максимального значения $cnt(в данном случае это 636), то остановим выполнение цикла; цикл выполняем некое кол-во раз($i++) ЗДЕСЬ НЕ ПОНЯТНО ОДНО: если я $i присвою 0, то скрипт выведет тот же результат, что и при $i = 1. Тогда почему 1, а не 0? { if ($arr[$i] > $max) //ТЕЛО ЦИКЛА ВООБЩЕ ПОНЯТЬ НЕ МОГУ. Я вижу такую логику: если любой индекс массива будет больше 25-ти(ведь в $min = $max = $arr[0]; указан нулевой индекс, а он у меня с значением 25 ) { $index_max = $i; //то дальше вообще тёмный лес для меня $max = $arr[$i]; } else //иначе if ($arr[$i] < $max) //если любой индекс массива будет меньше 25-ти(ведь в $min = $max = $arr[0]; указан нулевой индекс, а он у меня с значением 25 ) { $index_min = $i; //то дальше опять тёмный лес $min = $arr[$i]; } } echo "Максимальное число \$arr[$index_max] = $max<br>"; echo "Минимальное число \$arr[$index_min] = $min<br>"; ?>
И наконец. У меня результат такой получается
Максимальное число $arr[1] = 636
Минимальное число $arr[5] = 67
В массиве у меня минимальное число "3", а скрипт выводит 67. |