Циклы в PHP: for и foreach

Friday, 11 June 2010 | Автор: programmer

В PHP существует несколько разновидностей циклов: for, foreach. Сейчас рассмотрим именно их, в следующей статье while и do..while. Циклы позволяют проходить один и тот же код определенное количество раз (если заданы условия) или бесконечное число раз. Код внутри цикла называется телом цикла, а один проход цикла называется итерацией.

Цикл for.

    for (expr1; expr2; expr3) { тело_цикла; }

или

    for (expr1; expr2; expr3):
	тело_цикла;
    endfor;

Первое выражение expr1 выполняется всегда 1 раз при инициализации цикла. В началe каждой итерации логическое выражение expr2 оценивается на истину. Пока данное выражение истинно - цикл продолжает работу. Если же false, то работа цикла заканчивается. По окончанию каждой итерации расчитывается expr3.

Каждое из выражений expr1..3 может быть пустым или же содержать несколько выражений, разделенных запятыми. Если expr2 пустое, то данный цикл является бесконечным и тогда пользователю самому необходимо останавливать цикл.

В цикле можно использовать операнды break и continue: первый прекращает работу цикла, второй прекращает работу итерации и переходит на следующую.

Если тело цикла содержит только одну строку с кодом (одну операцию), то фигурные скобки открытия и закрытия цикла можно не указывать.

Примеры:

    for ($i=0; $i<10; $i++) {
	echo $i;
    }
    
    выведет 0123456789
    
for ($i=9; $i>=0; $i--) { echo $i; }
    выведет 9876543210
    
for ($i=0; ; $i++) { if ($i > 3 and $i < 6) continue; if ($i == 10) break; echo $i; }
    выведет 01236789
    Получается, что если $i принимает значение 4,5, то мы сразу переходим на следующую итерацию минуя вывод  сообщения. 
    когда $i становится равным 10, происходит выход из цикла
    

Цикл foreach.

Данный цикл предназначен специально для перебора элементов массива.

    foreach ($array as $value) {
	код цикла;
    }

или

    foreach ($array as $key=>$value) {
	код цикла;
    }

Как Вы могли догадаться, $array - это именно массив, который подается на вход циклу foreach, $value - это значение элемента массива, $key - это ключ элемента массива.

Для примера возьмем массив и попытаемся поработать с ним:

    $aA = array(
	"Имя"	=> "Сергей",
	"Ник"	=> "programmer",
	"Сайт"	=> "http://phpprogs.ru/"
    );

    
    сейчас выведем просто значения элементов массива
    
foreach ($aA as $value) { echo $value.", "; }
    результат: Сергей, programmer, http://phpprogs.ru/
    
    а сейчас сделаем всё красиво :)
    
foreach ($aA as $value) { echo $key.": ".$value."
"; }
    результат: 
    Имя: Сергей
    Ник: programmer
    Сайт: http://phpprogs.ru/
    
    Немножко усложним задачу, при использовании базы данных у Вас на выходе будут именно такого рода массивы:
    
$aA = array( array ( "name" => "Сергей", "nik" => "programmer", "site" => "http://phpprogs.ru/" ), array ( "name" => "Вася Пупкин", "nik" => "vasyapupkin", "site" => "http://phpprogs.ru/" ) ); foreach ($aA as $a) { foreach ($a as $key=>$value) { echo $key.": ".$value."
"; } }

В foreach Вы также можете использовать break и continue.


 
Tweet


Категория(и): Изучаем PHP, Скрипты

Комментарии


Sunday, 30 January 2011 | 18:07:37 | Автор: kudenv

Новичек.

А можно примерчик да поподробней как в масив загнать строку из файла и в нем сделать сортировку данных через знак |. и вывод этих данных в другой масив. Желательно пример если не трудно разбить по фукциям и описать каждый шаг. Заранее огромное спасибо.

Учусь на ваших советах!  

Tuesday, 26 April 2011 | 14:39:28 | Автор: bobls

Ошибка закралась. Добавил $key =>  и всё заработало

 а сейчас сделаем всё красиво :)
    foreach ($aA as $key => $value) {
	echo $key.": ".$value."
";
    }
Thursday, 18 October 2012 | 10:02:54 | Автор: lirika28

Вот тут есть бесплатные уроки ph http://irbis-team.com/15/1

Recs программирования http://irbis-school.com/
Добавить комментарий
Чтобы оставить комментарий, Вам необходимо зарегистрироваться или авторизироваться