Основы PHP
  Что такое PHP?
  Возможности PHP
  Преимущества PHP
  История развития
  Что нового в PHP5?
  «Движок» PHP
  Переход на PHP 5.3
New Переход на PHP 5.6
  Введение в PHP
  Изучение PHP
  Основы CGI
  Синтаксис PHP
  Типы данных PHP
  Переменные в PHP
  Константы PHP
  Выражения PHP
  Операторы PHP
  Конструкции PHP
  Ссылки в PHP
  PHP и ООП
  Безопасность
  Функции PHP
  Функции по категориям
  Функции по алфавиту
  Стандартные функции
  Пользовательские
  PHP и HTTP
  Работа с формами
  PHP и Upload
  PHP и Cookies
  PHP и базы данных
  PHP и MySQL
  Документация MySQL
  Учебники
  Учебники по PHP
  Учебники по MySQL
  Другие учебники
  Уроки PHP
  Введение
  Самые основы
  Управление
  Функции
  Документация
  Математика
  Файлы
  Основы SQL
  Дата и время
  CURL
  Изображения
  Стили
  Безопасность
  Установка
  Проектирование БД
  Регулярные выражения
  Подготовка к работе
  Быстрый старт
  Установка PHP
  Установка MySQL
  Конфигурация PHP
  Download / Скачать
  Скачать Apache
  Скачать PHP
  Скачать PECL
  Скачать PEAR
  Скачать MySQL
  Редакторы PHP
  Полезные утилиты
  Документация
  PHP скрипты
  Скачать скрипты
  Инструменты
  PHP в примерах
  Новости портала
 Главная   »  Сборник статей
 
 

Циклы

Автор: Ильин Александр

Одна из областей где возникает необходимость задействовать такую
конструкцию как цикл - работа с массивами, например: сортировка, поиск
нибольшего, наименьшего, среднего значения или банальный форматированный
вывод, да мало ли что еще. Давайте рассмотрим что предусмотрено для этих
целей в PHP. Итак, первый пример - использование конструкции for для работы
с массивом.


1. <?php
2.
3. // определим некоторый массив случайных чисел
4. $arr = array(145, 21, 46, 213, 114, 7, 84, 91, 302, 501, 37); //
хватит
5.
6. $cnt = count($arr); // теперь в $cnt количество элементов массива
$arr
7.
8. // попробуем найти максимально и минимальное значения массива
9. // и вывести их значения и индексы
10.
11. // определяем начальные значения
12. $min = $max = $arr[0];
13. $index_min = $index_max = 0;
14.
15. // а вот и цикл
16. for ($i = 1; $i < $cnt; $i++) {
17. if ($arr[$i] > $max) {
18. $index_max = $i;
19. $max = $arr[$i];
20. } else
21. if ($arr[$i] < $min) {
22. $index_min = $i;
23. $min = $arr[$i];
24. }
25. }
26.
27. echo "Максимальное число \$arr[$index_max] = $max<br>";
28. echo "Минимальное число \$arr[$index_min] = $min<br>";
29.
30. ?>

Результат работы программы:
Максимальное число $arr[9] = 501
Минимальное число $arr[5] = 7
Несколько комментариев. Язык PHP имеет очень продвинутые (развитые)
библиотеки функций, и там наверняка имеются такие элементарные, как поис
минимума, максимумаи т.п., кому интересно - проверьте, нас же сейчас
интересуют сами механизмы, поэтому я и использую простейшие задачи.
Посмотрите на оператор for, примененный нами: for ($i = 1; $i < $cnt; $i++)
, как работает эта конструкция? Сначала определяется переменная $i и ей
присваивается начальное значение 1 - это так называемый блок инициализации.
Затем на каждой итерации цикла вначале проверяется условие $i < $cnt, если
условие верно (true), то цикл продолжает выполняться - т. е. один раз
выполняется тело цикла: все что между фигурными скобками {...}. В конце
каждой итерации выполняется третья часть for: $i++ (увеличение $i на
единицу). И опять повтор проверки условия. Как только условие перестанет
выполняться ($i станет >= $cnt) выполнение цикла завершается - выполняется
следующий за телом цикла код. Такая конструкция цикла очень распространена
в языке Си/Си++ и других, унаследствовавших от него синтаксис.
Рассмотрим еще один интересный способ работы с массивом в цикле специфичный
для PHP - конструкция foreach.


1. <?php
2.
3. // определим некоторый массив случайных чисел
4. $arr = array(145, 21, 46, 213, 114, 7, 84, 91, 302, 501, 37); //
хватит
5.
6. foreach ($arr as $k => $v) {
7. echo "\$arr[$k] = $v<br>"; // вывод значения очередного
элемента массива
8. }
9.
10. $summ = 0;
11. foreach ($arr as $v) {
12. $sum += $v;
13. }
14. echo "Сумма элементов массива равна $sum";
15.
16. ?>

Результат:

$arr[0] = 145
$arr[1] = 21
$arr[2] = 46
$arr[3] = 213
$arr[4] = 114
$arr[5] = 7
$arr[6] = 84
$arr[7] = 91
$arr[8] = 302
$arr[9] = 501
$arr[10] = 37

Сумма элементов массива равна 1561

В первом случае использования foreach используются две новые переменные $k
- индекс очередного элемента массива и $v - значение этого элемента массива
(естественно, вместо k и v можно использовать любые разрешенные имена
переменных). Такой способ более показательный для масива и нет
необходимости определять размер массива до начала цикла.
Во втором случае показан пример использования foreach если нет
необходимости работать с индексами элементов массива, а достаточно знать
только их значения. Можно назвать этот вариант сокращенной формой foreach.

 
 » Обсудить эту статью на форуме

 
 Сборник статей 
 Содержание раздела 
Есть еще вопросы или что-то непонятно - добро пожаловать на наш  форум портала PHP.SU 
 

 
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS