Цикл for php
Wab IT
Цикл 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