Циклы

Цикл FOREACH:

<?php
 
  $students = [];
    
//присвоение значений
 
    $students[0] = "david";
      $students[1] = "kevin"; 
      $students[2] = "julie";
    $students[3] = "nayyar";
 
/*
  теперь мы используем цикл foreach, чтобы вывести массив значений
*/
 
foreach( $studentsas $std_name ) { 
   
   echo $std_name . "n";


}

// результат:

david
kevin
julie
nayyar
  
?>

Если вы хотите считать имя индекса и его значение для каждого элемента массива, используйте цикл FOREACH следующим образом:

<?php
 
foreach ($array as $key => $val) {
    print "$key = $valn";
} 
 
?>

Ещё пример:

<?php
$данные = array (
         "Иванов" => array ("рост" => 174, "вес"  => 68),
         "Петров" => array ("рост" => 181, "вес"  => 90),
         "Сидоров" => array ("рост" => 166, "вес"  => 73));
foreach ($данные as $фамилия => $данные1)
  {
  echo  "<br>$фамилия:<br>";
  foreach ($данные1 as $параметр => $pp)
    {
    echo  "$параметр = $pp<br>";
    }
  }
?>

результат:

Иванов:
рост = 174
вес = 68

Петров:
рост = 181
вес = 90

Сидоров:
рост = 166
вес = 73

Обработка массива циклом FOR:

<?php
    
    for ($i = 0; $i <count($array); ++$i) {
        print $array[$i];
    }
?>

запустим цикл в обратном порядке:

<?php

$userNames = ['petya', 'vasya', 'evgeny'];

for ($i = count($userNames) - 1; $i >= 0; $i--) {
    print_r("{$userNames[$i]}\n");
}

но это не работает для ассоциативных массивов.

Обработка массивов с помощью функции list():

<?php
    while (list($var, $val) = each($array)) {
        print "$var is $valn";
    }
?>

List() — это функция, которая противоположна функции array().

Each() принимает массив в качестве параметра, возвращает текущий ключ и значение в этом массиве, прежде чем переместить курсор массива. «Курсора массива» — это технический термин, обозначающий элемент массива, который в настоящее время считывается.

Цикл WHILE:

Цикл WHILE выполняется, пока выражение в скобках принимает значение true. Здесь нам наконец-то понадобится оператор инкремента ++, увеличивающий значение переменной на единицу.

Пример:

<?php
    $i = 0;

    while($i < 10)
        echo ++$i;
        
 // 12345678910
        
?>

бесконечный цикл:

<?php
    while(true)
        echo 'Привет!';
 // такой скрипт зависнет и выдаст ошибку если не сделать прерывание.
?>

В цикл WHILE можно подставить сколько угодно условий:

<?php
$a = 5;
$b = 10;
$c = 0;

while($a < 10 && $b < 20 && $c < 10)
    echo ++$a;

Цикл DO...WHILE

В отличие от while, цикл do-while или "цикл с постусловием" сначала выполняет код, а затем проверяет условие на истинность:

Прерывание циклов в PHP

Прерывание итерации - continue

Оператор continue позволяет пропустить одну итерацию, не мешая дальнейшему выполнению цикла:

<?php
    $arr = [5, 10, 15];
    
    foreach($arr as $value)
    {
        if($value === 10) // Прерываем текущую итерацию, но не весь цикл
            continue;

        echo $value, '<br>';
    }
/*Результат в браузере:
 5
15
*/

Прерывание цикла - break

Оператор break прерывает работу цикла:

<?php
    $arr = [5, 10, 15];

    foreach($arr as $value)
    {
        if($value === 10)
            break;
        
        echo $value;
    }
/*
Результат в браузере:

5
*/

// Ещё пример: 


$array = [2, 3, 6, 1, 23, 2, 56, 7, 1, 15];
$number = 1;

$isNumberFound = false;
foreach ($array as $item) {
    echo 'Сравниваем с числом элемент ' . $item . '
'; if ($item === $number) { $isNumberFound = true; break; } } echo $isNumberFound ? 'Число найдено' : 'Число не найдено';

Кроме этого, break позволяет выйти сразу из нескольких циклов, нужно только передать число (иерархию):

<?php
    $arr = [5, 10, 15];

    foreach($arr as $value)
    {
        for($i = 0; $i < 10; $i++)
        {
            if($value === 10)
                break 2; // Выходит сразу из for и foreach
            
            echo $value, $i, '<br>';
        }
    }
?>

использовалась статья Yandex.ru

использовалась статья programulin.ru