training-web.ruГлавнаяКатегорииО насКарта сайтаПоискТёмная тема

Категории

Циклы PHP для вывода информации

Создано: 14 июля 2015Автор: Егор Астапов2862 просмотраСложность: легкий

Очень часто применяют циклы для вывода какой-нибудь информации. Я люблю использовать for вместо while. Циклы позволяют повторять определённое количество операторов. Всё что находится внутри скобок {...} называется телом цикла. Проход цикла называется итерацией. Итераций может быть много. Чаще всего циклы идеально подходят для вывода как одномерных, так и многомерных массивов PHP. Приведу вам список популярных циклов.

  1. for - цикл со счётчиком
  2. foreach - специальный цикл для перебора массивов
  3. while - с предусловием
  4. do-while - с постусловием

Цикл while

Пока существует условие цикл выполняется. Если условие равно FALSE, то цикл прекращает свою работу.


//while
$arr = array(1,2,3,4,5,6,7,8,9);
while($x < 10)
{
    $x++;
    echo $x;
}
//12345678910

Обратите внимание на увеличение счетчика $x++. Вы можете поставить увеличение значений переменной на одну единицу. Но вы должны поставить увеличение счетчика перед оператором echo. В противном случае, вы не выведите последний элемент.

Цикл с постусловием do-while

Этот цикл срабатывает как минимум один раз. Относитесь внимательно к этому моменту. Цикл сработает даже если условие равно false. Проверка условия произойдет после работы блока кода внутри тела цикла. Этот цикл достаточно редко используется.


//do-while
$x = 1;
do
{
  echo $x;
  $x++;  
} while ($x<=10);

Цикл for

Цикл for самый сложный по конструкции из циклов, но у него много возможностей. Например, можно вывести значение переменной по возрастанию и по убыванию. Можно вывести ассоциативный массив. Цикл for хорошо подходит для отображения многомерных ассоциативных массивов. Синтаксис цикла for: for(инициирующая команда; условие цикла; команды после итерации){тело цикла}. Команда выполняется один раз. Потом происходит проверка. Если команда соответствует условию, то она будет выполняться. Как только условие станет равным false, то команды перестанут выполняться.


//for
//индексированный массив
$arr = range(1,10);
for( $i = 0; $i < count($arr); $i++)
{
    echo $arr[$i].", ";
}
//1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
$arr = array(array('site' => 'training-web.ru', 
								'author' => 'Egor', 
								'theme' => 'PHP'),
             array('site' => 'egorch.ru', 
					  'author' => 'Egor', 
					  'theme' => 'CorelDraw')); 
for( $i = 0; $i < count($arr); $i++)
{
    $str .= $arr[$i]['site'].", ".$arr[$i]['author'].
			", ".$arr[$i]['theme']." | ";
}
$str = rtrim($str, " | ");
echo $str;
//training-web.ru, Egor, PHP | egorch.ru, Egor, CorelDraw

Цикл foreach

Цикл foreach очень хорош для перебора ассоциативных массивов, где есть ключ значение. Если у вас несколько ключей в одном массиве, то используйте цикл for. Старайтесь не использовать цикл foreach внутри тела цикла foreach. Цикл в цикле - это двойная нагрузка на ваш сервер.


//foreach
//ассоциативный массив
$arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5,
             'i' => 6, 'f' => 7, 'g' => 8, 'h' => 9);
foreach($arr as $key => $value)
{
    echo $key."=>".$value.", ";
}
//a=>1, b=>2, c=>3, d=>4, e=>5, i=>6, f=>7, g=>8, h=>9,
//одномерный массив
$arr = array(1,2,3,4,5,6,7,8,9);
foreach($arr as $value)
{
    echo $value.", ";
}
//1, 2, 3, 4, 5, 6, 7, 8, 9,

Конструкция break позволяет выйти из цикла. Вы должны использовать оператор if. Конструкция continue позволяет выборочно выполнить определённую итерацию цикла. Вы как бы перескакиваете с одной итерации на другую. Промежуточные итерации не выполняются.


//continue
$arr = range(1,100);
for( $i = 0; $i < count($arr); $i++)
{
    if($i % 2 == 0) continue;
    echo $arr[$i].", ";
}
/*2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30,
 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58,
 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 
82, 84, 86, 88, 90, 92, 94, 96, 98, 100,*/
//break
$arr = range(1,100);
for( $i = 0; $i < count($arr); $i++)
{
    echo $arr[$i].", ";
    if($i == 10) break;       
}
//1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,

Комментарии

реклама