Цикл for php

Wab IT

Цикл for php

Цикл for для итерации в php

Цикл for для повторяющегося условия в php, если условие не достигнуто повторяем снова.

Записывается цикл
for ( в круглых скобках, выражения разделяются точкой с запятой; условие; и инкремент) {
  в кавычках код для выполнения}
 или  без кавычек в зависимости от продолжения кода.

for (начальный счетчик; счетчик теста; счетчик увеличения){
код;

Пример записи двух циклов.

for($ya = 1; $ya < 10; $ya++){ // переменная равна 1; если переменная меньше 10; увеличиваем на 1 пока не будет 9
echo $ya; }; // вывели в браузере
for ($ya = 1; $ya <= 10; $ya++) echo $ya; // тоже самое только равно 10

Для ($Я ровно 1; Если $Я будет меньше 10; то $Я увеличить на 1) 
вывести $Я ;
И повторять цикл пока не будет Я=9 и второй вариант Я=10.
Из прошлых уроков, чтобы оператор был равен условию, ставим меньше или ровно <=.

Так же цикл for можно записать c помощью нескольких операторов в выражении.
Ниже мы записали цикл для (Я = 1, выводим Я, потом инкрементом каждому Я прибавляем 2. Так у нас вывелись все нечетные числа.);

for ($ya = 1, print 'если я меньше 10 '; $ya < 10; print ', то вывести не четное число ' . $ya, $ya = $ya + 2); // 

 Записать операторы можно и вне цикла фор( ; указав разделитель ; )

$i = 1; // записали оператор вне цикла
 
for ( ; ; ) {  // создали цикл с разделителями операторов
if ($i > 10) {  //записали условие если i больше 10
break; // то остановить условие иначе цикл будет бесконечный 
}
echo $i;  // вывели i 
 
$i++;  // прибавляем по единице пока не станет больше 10, как в условии записано
}

  или записать так   

$i = 1;
for (; $i<10 ;)  
echo $i++; 

Цикл for с массивами 

Циклом for можно записывать массивы и выводить их. Для примера создадим пустой массив и заполним его.

$massiv=[]; // создали пустой массив
for($q=0; $q <= 10 ; $q++){ // обычный цикл, если меньше 10 то увеличиваем на 1
$massiv[]=[$q]; // в массив записываем инфу с $q 
echo $massiv[7][0] // выводим индекс и ключ
 
};

И у нас вывело 7777. Цикл записал в массив индекс от 0 до 10. Индекс под номером 7=7, а вот количество циклов до 10 осталось еще 4, так как счет каждый раз начинается с 0 и считаем от 7 до 10.  7,8,9,10 

Посмотрим наш записанный массив, видим что первая цифра 0 записалась под ключем 0.
1=1 и т.д.

print_r  ($massiv); 

Выводим наш записанный массив при помощи цикла for. Перебрав его функцией count.

for($w = 0; $w < count($massiv); ++$w){ // сравниваем $w с количеством в массиве 
echo $massiv[$w][0]; // выводим массив в $w и за ним индекс  }  

Перебор массива в цикле для примера.

Пройдемся по нашему массиву шкаф. Начнем с одномерного. Запишем его в переменную функцией count. — подсчитывает количество элементов массива.
Цикл пройдясь по массиву, индексы из массива который в переменной вещи, записал в переменную $i, ниже мы выводим данные с помощью переменной в которую записаны индексы.

$shkaf = [' майки ', ' свитера ', ' джинсы ',]; // массив шкаф
$veshi = count($shkaf);  // в переменную записали данные при помощи функции
for ($i = 0; $i < $veshi; $i++) {  // сравниваем с переменной в которой массив
echo $shkaf[$i]; // выводим масив и счетчик как индекс с данными.
 
};

Цикл for с многомерными масивами

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

$shkaf = [
' майка ' => [' майка с рисунком ', 7, ' футболки однотонные ', 5],
' свитер' => [ ' полувер ', 3, ' шерстяной ', 4,],
' джинсы ' => [' синие ', 4, ' черные ', ],   ]; 

В этом случае, в ассоциативных названиях нашего многомерного массива, цикл for не найдет ключа. Если мы перепишем ключи в цифры. 

$shkaf = [
1 => [' майка с рисунком ', 7, ' футболки однотонные ', 5],
2 => [' полувер ', 3, ' шерстяной ', 4,],
3 => [' синие ', 4, ' черные ',], 
  ];

Сможем вывести массив с ключом и индексом.
Пример 1

$massiv = count($shkaf);// записали массив в переменную
for ($q = 1; $q <= $massiv; $q++) { Сравнили с 1, так как ключ у нас с 1
 
echo '<p>Полка '.$q; //  вывели ключ, номера полок 
 
echo  $shkaf[$q][0], $shkaf[$q][1], $shkaf[$q][2], $shkaf[$q][3]; // вывели  индексы записанные в $q.  
 
    }

Так же мы можем пройтись циклом два раза, записать массив в переменные и вывести индексы записанные в переменных. Здесь мы работаем сразу с массивом, без функции count.
Пример 2.

for($cik = 1; $cik <= 3; $cik++ ){ // создали переменную цикл, стартуем с 1 так как у нас ключи начинается с 1. Считаем 3, так как у нас 3 полки массива второго уровня. Увеличиваем на 1
echo '<p>Полка ' . $cik . ' - ' ; // выводим переменную с ключами полок.  
for($cik2 = 0; $cik2 <= 4; $cik2++){ // создали второй цикл с количеством индексов в массиве
echo $shkaf[$cik][$cik2]; //выводим индексы массива.
 
}}

 Переписываем массив, запишем полки задав им ассоциативный ключ полка, с чем.

$shkaf = [
['полка' => ' Майки: ', ' майка с рисунком ', 7, ', футболки однотонные ', 5], 
['полка' => ' Свитер: ', 'полувер ', 3, ', шерстяной ', 4,], 
['полка' =>  ' Джинсы: ',' синие ', 4, ', черные ', 6],
]; 

Для такого массива, цикл немного отличается от предыдущего. Чтобы вывести ключ, поменяем счетчик на 0, укажем массив, переменную и название ключа. Указатель полка можно убрать.

Пример 1. 

for ($q = 0; $q <= $massiv; $q++) { // Сравнили с 0, так как ключ ассоциативный начинается с 0.
echo '<p> '. $shkaf[$q]['полка'] ,  // вывели массив, в переменной g записанный массив второго уровня и ключ. Индексы выводим так же как в первом варианте.
 
 $shkaf[$q][0] ;   
 
} 

Во втором примере тоже самое, меняем счетчик на 0 и дописываем.  
Пример 2.

for($cik = 0; $cik < 3; $cik++ ){ 
 
 echo  '<br>' . $shkaf[$cik]['полка'] ; 
 
 for($cik2 = 0; $cik2 <= 3; $cik2++){ 
 
 echo $shkaf[$cik][$cik2];
 
}       

Массив списком в цикле for

Как вывести массив списком в цикле фор.
Вывести номерованным списком. Пример

echo '<ol>';  // задали тип списка номерованный тегом ol
for ($q = 0; $q <= $massiv; $q++) { // записали цикл
 
echo '<li>  ' . $shkaf[$q]['полка']; // и здесь установили отдельный элемент списка li, для каждого цикла.  
 
   echo $shkaf[$q][0], $shkaf[$q][1], $shkaf[$q][2], $shkaf[$q][3]; // вывели индексы записанные в $q. 
 
}
 
echo '</ol>'; // закрыли номерованный список </p>

Ток же для  маркированного списка, но в зависимости от где закрыть, будет вывод. Пример

for ($cik = 0; $cik < 3; $cik++) { 
 
echo '<ul><li>' . $shkaf[$cik]['полка']; // открыли сразу тип и элемент списка
for ($cik2 = 0; $cik2 <= 3; $cik2++) {
echo $shkaf[$cik][$cik2];
echo '</li>'; // закрыли элемент
}
echo ' </ul>'; // закрыли тип
 
}

 Вложенный цикл for.

Выше мы уже записали функцией count, массив в переменную массив, ее и будем использовать, Только в этом случае пройдемся вложенным циклом по массиву записанному в переменную, функцией count. 

for ($q = 0; $q < $massiv; $q++) {  // сравниваем 
echo "<br> полка - ". $shkaf[$q]['полка'] . '.' ; // Вывели полки по ключу полка 
$w = count($shkaf[$q]); // создали переменную, в нее функцией count, еще раз перебрали массив уже из переменной $q.
for ($dva = 0; $dva < $w; $dva++) { // создали переменную в которой уже сравниваем данные из первого цикла и дальше записываем еще оставшиеся.
echo    $shkaf[$q][$dva]; // вывели ключи записанные в переменных из первого цикла, и из второго цикла 
 
} }; 

Как вы видите ничего сложно, если все правильно записать. Так же мы можем вывести все по ключу с индексами, без вложенного массива. Из за того что мы создали ассоциативный массив, каждый  последующий за ним блок начинает с нового индекса. Выведем массив через print_r и посмотрим на индексы.

for ($q = 0; $q < $massiv; $q++) {
echo "<br> полка - " . $shkaf[$q]['полка'] . '.'; // вывели ключ полка
echo    $shkaf[$q][0], $shkaf[$q][1],  $shkaf[$q][2], $shkaf[$q][3],  $shkaf[$q][4]; // дальше выводим индексы
}; 

Плюс данного кода, что мы можем редактировать HTML каждый индекс. Но выводит не критическую ошибку, так как ключ 4 есть только на одной полке.

И еще один пример записи цикла for. Использовании вложенный цикл, можно использовать выражение родительского.  Поиграйте с цифрами

for ($q = 2; $q <= 5; $q++) {
for ($w = -3; $w <= $q; $w++) {
echo "*";  }
 
echo "<br>";   }  
 

Домашнее задание

Выведете массив маркированным списком, как в примере ниже.

  • Майки: майка с рисунком 7, футболки однотонные 5
  • Свитер: полувер 3, шерстяной 4
  • Джинсы: синие 4, черные 6 
Продолжить просмотр за:
100 Лит
23:10
476
Lit
RSS
Нет комментариев. Ваш будет первым!

Похожий контент

Массивы в PHP это набор упорядоченных данных. Создадим ассоциацию для массива, массив - ...
Цикл foreach в PHP для вывода массиваЦикл foreach в php, работает только с мас...
Циклы while и do while в phpЦикл while - пока, условие верно, делаем. Цикл&nbs...
Операторы break, continue и goto в PHPОператоры: break - прервать, continue - про...