Циклы

Автор: content Воскресенье, Апрель 8th, 2012 Нет комментариев

Рубрика: Язык 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.

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

Источник: http://www.php.su/articles/?cat=examples&page=016

Оставить комментарий

Чтобы оставлять комментарии Вы должны быть авторизованы.

Похожие посты