• Циклы php примеры. Циклы в PHP

    10 years ago

    Just a note about using the continue statement to forego the remainder of a loop - be SURE you"re not issuing the continue statement from within a SWITCH case - doing so will not continue the while loop, but rather the switch statement itself.

    While that may seem obvious to some, it took a little bit of testing for me, so hopefully this helps someone else.

    5 years ago

    Is strange that the manual states...
    "Sometimes, if the while expression evaluates to FALSE from the very beginning, the nested statement(s) won"t even be run once. "

    Because it can"t be SOMETIMES

    If it behaves that way, then it is a bug, because it ALWAYS must not run the nested statement(s) even once if the WHILE expression evaluates to FALSE from the very beginning.

    Another way to exit the while loop is by using the BREAK statement.. see it in the manual.

    And if expression evaluates to NULL is the same as FALSE
    while (expression evals to NULL){ }

    14 years ago

    Just a note to stuart - the reason for this behaviour is because using the while(value = each(array)) construct increments the internal counter of the array as its looped through. Therefore if you intend to repeat the loop, you need to reset the counter. eg:

    $one = array("10", "20", "30", "40");
    $two = array("a", "b", "c", "d");

    $i=0;
    while($i < count($one)) {
    reset($two);
    while($a = each($two)) {
    echo $a." - ".$one[$i].", ";
    }
    $i++;

    a - 10, b - 10, c - 10, d - 10, a - 20, b - 20, c - 20, d - 20, a - 30, b - 30, c - 30, d - 30, a - 40, b - 40, c - 40, d - 40,

    15 years ago

    While can do wonders if you need something to queue writing to a file while something else has access to it.

    Here is my simple example:

    Function write ($data , $file , $write_mode = "w" ) {
    $lock = $file . ".lock" ;
    // run the write fix, to stop any clashes that may occur
    write_fix ($lock );
    // create a new lock file after write_fix() for this writing session
    touch ($lock );
    // write to your file
    $open = fopen ($file , $write_mode );
    fwrite ($open , $data );
    fclose ($open );
    // kill your current lock
    unlink ($lock );
    }

    Function write_fix ($lock_file ) {
    while(file_exists ($lock_file ){
    // do something in here?
    // maybe sleep for a few microseconds
    // to maintain stability, if this is going to
    // take a while ??
    }
    }

    ?>

    This method is not recommended for use with programs that will be needing a good few seconds to write to a file, as the while function will eat up alot of process cycles. However, this method does work, and is easy to implement. It also groups the writing functions into one easy to use function, making life easier. :-)

    17 years ago

    At the end of the while (list / each) loop the array pointer will be at the end.
    This means the second while loop on that array will be skipped!

    You can put the array pointer back with the reset($myArray) function.

    $myArray =array("aa" , "bb" , "cc" , "dd" );
    reset ($myArray );
    while (list ($key , $val ) = each ($myArray )) echo $val ;
    ?>

    7 years ago

    Instead of this usage;

    $arr = array("orange" , "banana" , "apple" , "raspberry" );

    $i = 0 ;
    while ($i < count ($arr )) {
    $a = $arr [ $i ];
    echo $a . "\n" ;
    $i ++;
    }
    // or
    $i = 0 ;
    $c = count ($arr );
    while ($i < $c ) {
    $a = $arr [ $i ];
    echo $a . "\n" ;
    $i ++;
    }
    ?>

    This could be more efficient;

    while ($a = $arr [ 1 * $i ++]) echo $a . "\n" ;
    ?>

    16 years ago

    I made a test traversing an array (simple, but long, numeric array with numeric keys). My test had a cycle per method, and multiplied each array element by 100.. These were my results:

    ******************************************************
    30870 Element Array Traversing


    0.2373 seg later -> while (list ($key, $val) = each ($array)) ENDS


    0.1916 seg later -> while (list ($key,) = each ($array)) ENDS


    0.1714 seg later -> foreach ($array AS $key=>$value) ENDS


    0.0255 seg later -> while ($next = next($array)) ENDS


    0.1735 seg later -> foreach ($array AS $value) ENDS
    **************************************************************

    foreach is fatser than a while (list - each), true.
    However, a while(next) was faster than foreach.

    These were the winning codes:

    $array = $save;
    test_time("",1);
    foreach ($array AS $key=>$value)
    test_time("foreach (\$array AS \$key=>\$value)");

    $array = $save;
    test_time("",1);
    reset($array);
    while ($next = next($array))
    { $key = key($array);
    $array[$key] = $array[$key] * 100;
    }
    test_time("while (\$next = next(\$array))");
    *********************************************************
    The improvement seems huge, but it isnt that dramatic in real practice. Results varied... I have a very long bidimensional array, and saw no more than a 2 sec diference, but on 140+ second scripts. Notice though that you lose control of the $key value (unless you have numeric keys, which I tend to avoid), but it is not always necessary.

    I generally stick to foreach. However, this time, I was getting Allowed Memory Size Exceeded errors with Apache. Remember foreach copies the original array, so this now makes two huge 2D arrays in memory and alot of work for Apache. If you are getting this error, check your loops. Dont use the whole array on a foreach. Instead get the keys and acces the cells directlly. Also, try and use unset and Referencing on the huge arrays.

    Working on your array and loops is a much better workaround than saving to temporary tables and unsetting (much slower).

    14 years ago

    The speedtest is interesting. But the seemingly fastest way contains a pitfall for beginners who just use it because it is fast and fast is cool ;)

    Walking through an array with next() will cut of the first entry, as this is the way next() works ;)

    If you really need to do it this way, make sure your array contains an empty entry at the beginning. Another way would be to use

    while ($this = current ($array )){
    do_something ($this );
    next ($array );
    }
    ?>

    There is an impact on speed for sure but I did not test it. I would advise to stick with conventional methods because current(),next() in while loops is too error prone for me.

    4 years ago

    A cool way to keep evaluating something until it fails a test.

    while (true ) {
    if ("test" ) { // is initial condition true
    // do something that also changes initial condition
    } else { // condition failed
    break; // leave loop
    }
    }
    ?>

    4 years ago

    Simple pyramid pattern program using while loop
    $i = 1 ;
    while($i <= 5 )
    {
    $j = 1 ;
    while($j <= $i )
    {
    echo "*  " ;
    $j ++;
    }
    echo "
    " ;
    $i ++;
    }
    ?>
    // or alternatively you can use:
    $i = 1 ;
    while($i <= 5 ):

    $j = 1 ;
    while($j <= $i ):
    echo "*  " ;
    $j ++;
    endwhile;

    Echo "
    " ;
    $i ++;
    endwhile;
    ?>

    11 years ago

    Due to the fact that php only interprets the necessary elements to get a result, I found it convenient to concatenate different sql queries into one statement:

    $q1 = "some query on a set of tables" ;
    $q2 = "similar query on a another set of tables" ;

    if (($r1 = mysql_query ($q1 )) && ($r2 = mysql_query ($q2 ))) {

    While (($row = mysql_fetch_assoc ($r1 ))||($row = mysql_fetch_assoc ($r2 ))) {

    /* do something with $row coming from $r1 and $r2 */

    }
    }

    ?>

    3 years ago

    // test While Vs For php 5.6.17

    $t1 = microtime (true );
    $a = 0 ;
    while($a ++ <= 1000000000 );
    $t2 = microtime (true );
    $x1 = $t2 - $t1 ;
    echo PHP_EOL , " > while($a++ <= 100000000); : " , $x1 , "s" , PHP_EOL ;

    $t3 = microtime (true );
    for($a = 0 ; $a <= 1000000000 ; $a ++);
    $t4 = microtime (true );
    $x2 = $t4 - $t3 ;
    echo PHP_EOL , "> for($a=0;$a <= 100000000;$a++); : " , $x2 , "s" , PHP_EOL ;

    $t5 = microtime (true );
    $a = 0 ; for(; $a ++ <= 1000000000 ;);
    $t6 = microtime (true );
    $x3 = $t6 - $t5 ;
    echo PHP_EOL , " > $a=0; for(;$a++ <= 100000000;); : " , $x3 , "s" , PHP_EOL ;

    //> while($a++ <= 100000000); = 18.509671926498s
    //> for($a=0;$a <= 100000000;$a++); = 25.450572013855s
    //> $a=0; for(;$a++ <= 100000000;); = 22.614907979965s

    // ===================

    //> while($a++ != 100000000); : 18.204656839371s
    //> for($a=0;$a != 100000000;$a++); : 25.025605201721s
    //> $a=0; for(;$a++ != 100000000;); : 22.340576887131s

    // ===================

    //> while($a++ < 100000000); : 18.383454084396s
    //> for($a=0;$a < 100000000;$a++); : 25.290743112564s
    //> $a=0; for(;$a++ < 100000000;); : 23.28609919548s

    ?>

    16 years ago

    This is an easy way for all you calculator creators to make it do factorials. The code is this:

    $c = ($a - 1 );
    $d = $a ;
    while ($c >= 1 )
    {
    $a = ($a * $c );
    $c --;
    }
    print (" $d ! = $a " );
    ?>

    $a changes, and so does c, so we have to make a new variable, $d, for the end statement.

    В некоторых случаях необходимо выполнять код до тех пор, пока не будет достигнут нужный результат. Для этого PHP предоставляет циклы while , for и foreach .

    Синтаксис цикла while в PHP

    Синтаксис цикла while :

    Пример использования цикла while в PHP :

    В примере цикла while в php , приведенном выше, сначала инициализируется переменная счётчика $ i значением 0 .

    Условие цикла while – это $ i < 10 . Это означает, что мы проверяем, меньше ли переменная, чем 10.

    Всё, что заключено в фигурные скобки – это инструкции (тело ) цикла. Они повторяются до тех пор, пока условие возвращает значение true . В примере, приведенном выше, $ i выводится на экран, а затем переменная счётчика увеличивается на 1. Это важно чтобы условие цикла, в конце концов, перестало соблюдаться. Если условие цикла соблюдается всегда, например, потому что вы забыли увеличить переменную счётчика $ i , тогда скрипт войдёт в бесконечный цикл. К счастью, через некоторое время PHP прекратит выполнение вашего скрипта.

    Вы можете сделать как условие цикла, так и тело цикла сколь угодно сложными. Например, использовать while внутри while php, использовать php while для перебора массива ( array ) или определить более одной переменной счётчика:

    $min) { echo "count1: $count1; count2: $count2
    "; $ counter1 += 2; // Сокращённое выражение для $counter1 = $counter1 + 2; $counter2 -= 3; // Сокращённое выражение для $count2 = $count2-3; } ?>

    В примере определяются две переменные: $ counter 1 и $ counter 2 . Одна переменная увеличивается на 2, а другая уменьшается на 3. Цикл while выполняется, пока соблюдаются оба условия $ count 1 < $ max и $ count 2 > $ min .

    Влияние ключевых слов break и continue на цикл

    С помощью команды break можно прервать процесс выполнения цикла while в PHP . Допустим, мы ищем определённого пользователя. Тогда можно пройти по всем пользователям в цикле while . Если найдём нужного пользователя, то остановим цикл с помощью ключевого слова break .

    Простой пример использования ключевого слова break :

    while ($count < $max) { if ($count == 10) { echo "Останавливаемся на числе 10"; break; } echo "$count,"; $counter += $increment; // увеличивает $count на значение $increment } ?>

    Этот код перебирает числа по возрастанию от 0 до $max = 30 , прибавляя к переменной $ count значение $ increment , другими словами число 2. Но если переменная $ count будет равна 10, произойдет выход из цикла while в php .

    Ключевое слово continue не завершает цикл while в php полностью , а лишь пропускает оставшуюся часть тела цикла. Приведенный ниже пример демонстрирует это:

    while ($count < $max) { $counter += $increment; // увеличивает $payer на $increment if ($count >= 10 && $count <= 15) { echo "Число между 10 и 15
    "; continue; }

    echo "$count
    "; } ?>

    Этот цикл начинается с 0 и увеличивает счётчик до значения $ max . Переменная $ counter всегда увеличивается на значение переменной $ increment . То есть принимает значения 0, 2, 4 и т.д.

    Если переменная $ count имеет значение между 10 и 15, на экран будет выведен текст и оператор continue пропустит остальные выражения в теле цикла. В результате мы видим, что числа 10, 12 и 14 не выводятся.

    Цикл do-while в PHP

    Небольшой модификацией while является цикл do — while . В данном случае условие цикла проверяется только после выполнения его тела. Это значит, что тело цикла выполнится хотя бы один раз.

    Синтаксис цикла do-while :

    Предположим, что мы хотим сгенерировать случайное число, которое должно быть либо между 0 и 10, либо между 20 и 30. Согласно определению функции rand ($ min , $ max ) , можно случайным образом сгенерировать число между $ min и $ max :

    10 && $random < 20) { $random = rand (0, 30); }

    echo "Наше случайное число: $random"; ?>

    Используя php цикл do while , можно получить значение выражения без инициализации переменной $ random . Тело цикла выполняется перед тем, как проверяется условие. Тогда пример, приведенный выше, будет выглядеть следующим образом:

    10 && $random < 20);

    echo " Наше случайное число: $random"; ?>

    Новичка цикл do-while может слегка сбить с толку. Если вы до конца не понимаете его цели, то это не проблема. Циклы do-while редко используются на практике.

    Эту статью я пишу для новичков, которые только начинают изучать PHP . Расскажу я в этой статье о всевозможных циклах в PHP , так как данной статьи у меня на сайте не было. Были только , но, несмотря на общую схожесть, это всё-таки не то. В PHP есть 4 вида циклов .

    1. WHILE
    2. DO-WHILE
    3. FOREACH

    Разберём их по порядку и начнём с самого популярного цикла в PHP (да и не только в PHP ) - это цикл FOR . Синтаксис у данного цикла следующий:

    For(Выражение_1; Выражение_2; Выражение_3) {
    операторы
    }

    Выражение_1 выполняется сразу же и безоговорочно, Выражение_3 выполняется после каждой итерации цикла. Выражение_2 - это проверка того, нужно ли продолжать цикл. Если результат выражения будет true , то начинается следующая итерация цикла, а если false , то цикл прекращает свою работу.

    Следующий тип цикла - это WHILE . Это более простой тип циклов, синтаксис которого следующий:

    While(Выражение) {
    операторы
    }

    Пока Выражение возвращает true , цикл будет работать, а как только появится false , он прекращает свою работу.

    Цикл DO-WHILE очень похож на WHILE , но с одним отличием. Условие выхода проверяется после выполнения итерации, а не до. Таким образом, данный цикл будет выполняться всегда хотя бы 1 раз. И вот синтаксис цикла DO-WHILE :

    Do{
    операторы
    }while(Условие);

    И, наконец, последний тип циклов - это foreach , который служит только для перебора массивов и объектов . Он необходим, когда ключами у массива являются не числа (которые легко перебрать через тот же FOR ), а строки. Синтаксис цикла FOREACH следующий:

    Foreach($array_or_object as $key => $value) {
    операторы
    }

    И, наконец, давайте применим все 4 типа циклов в PHP для перебора массивов :

    $list = array(5, 2, 3, 10, 12, 10);
    $array = array("a" => 1, "x" => 10, "m" => -5);
    for ($i = 0; $i < count($list); $i++) {
    echo $list[$i]."; ";
    }
    echo "
    ";
    $i = 0;
    while ($i < count($list)) {
    echo $list[$i]."; ";
    $i++;
    }
    echo "
    ";
    $i = 0;
    do {
    echo $list[$i]."; ";
    $i++;
    }while($i < count($list));
    echo "
    ";
    foreach ($array as $key => $value) {
    echo "$key = $value; ";
    }
    ?>

    Все эти циклы обязан знать наизусть любой программист, поэтому если вдруг что-то непонятно, перечитайте ещё раз, либо задайте вопрос в комментариях, и я постараюсь ответить.

    Всем доброго времени суток. На связи Алексей Гулынин. В прошлой статье мы разобрали ссылки в PHP . В данной статье я бы хотел рассказать о различных циклах в PHP . Всего их существует 4 вида:

    • Итерационный цикл for
    • Цикл с предусловием
    • Цикл с постусловием
    • Цикл foreach

    Давайте сразу на примерах разберем все циклы. Пусть будет такая задача: необходимо для 10 элементов вывести квадраты числа.
    1) Итерационный цикл for :

    "; } ?>

    В данном цикле можно использовать несколько условий. Пусть необходимо проверить, если элемент равен 6, то больше ничего не выводить (оператор break пока не знаем). Можно написать так:

    "; } ?>

    2) Цикл с предусловием :

    "; $i++; } ?>

    В данном случае также будут выведены квадраты первых 10 чисел. Данный цикл называется циклом с предусловием, потому что проверка условия идёт в начале, в отличие от следующего цикла.

    3) Цикл с постусловием :

    "; $i++; } while ($i <= 10) ?>

    В данном случае проверка условия осуществляется уже после выполнения блока кода, и данный блок кода выполнится 1 раз в любом случае.

    4) Цикл foreach . Данный цикл предназначен для перебора значений массива и появился только в четвертой версии языка PHP. Массив — это некоторый набор ключей, каждому из которых соответствует некоторое значение. Более подробно массивы будут разбираться в следующих статьях. Рекомендую подписаться на обновления, чтобы не пропустить.
    Синтаксис данного цикла следующий:

    Foreach (массив as $key=>$value) { блок операторов }

    $key представляет собой ключ , $value — значение. Данная конструкция не изменяет исходный массив. Чтобы иметь возможность изменять исходный массив, необходимо использовать ссылочный тип:

    Foreach (массив as $key=>&$value) { блок операторов }

    Давайте с помощью данного цикла выведем содержимое всех переменных окружения (массив $_SERVER ):

    $value) { echo "$key => $value
    "; } ?>

    Обязательно наберите данный пример и посмотрите, как всё работает.

    Очень часто возникает ситуация, когда необходимо прервать выполнения цикла. Для этого необходимо использовать конструкцию break . У данной конструкции есть один необязательный параметр. По умолчанию данный параметр равен 1, т.е. мы прерываем выполнение текущего цикла. Давайте разберем такой пример: создадим 2 итерационных цикла от 1 до 5 и, если число будет равно 5, то выведем число. В данном случае, если мы будем использовать просто break , то число 5 будет выведено 5 раз. Если же мы напишем break(2) , то только один раз:

    "; break; //запустите скрипт, а затем напишите break(2); } } } ?>

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

    Оператор continue , наоборот, пропускает текущую итерацию цикла и переходит уже к следующей. Также в скобках можно указать уровень вложенности цикла.
    Пример не буду приводить, дам домашнее задание на этот оператор.

    Вряд ли вы сможете написать серьезный сценарий на PHP , не используя циклы. Что такое цикл? Это особый вид управляющей конструкции, позволяющие многократно (и даже бесконечно) выполнять один и тот же код. В PHP поддерживаются следующие циклы:

    Первые три цикла вы, скорее всего, сможете встретить в большинстве языков программирования. Циклы, в зависимости от условий, можно прерывать или продолжать (переходить к следующей итерации, не выполняя тело цикла). Давайте рассмотрим подробнее каждый из циклов.

    Цикл for

    Синтаксис цикла for следующий.

    For(инициализация; условие; команды_после_итерации) { тело_цикла; }

    В блоке инициализации всегда инициализируется счетчик, а также другие переменные (если необходимо). В блоке условия указывается в какой момент работа цикла должна быть прекращена. В блоке команд, исполняемых после каждого прохождения цикла, обычно меняется значение счетчика, а также и других переменных (если необходимо).

    // Массив значений $array = array("Яблоко", "Картошка", "Арбуз", "Цветок", "Вода", "Ртуть", "Кислород", "Пшеница", "Россия", "Москва", "Ливень"); // Условие цикла звучит так: пока счетчик не достигнет значения, равного количеству // элементов массива, тело цикла выполняется for($i = 0; $i < count($array); $i++) { print "
    ".($i + 1).". ".$array[$i]."."; } /* Результат работы цикла будет таким: 1. Яблоко. 2. Картошка. 3. Арбуз. 4. Цветок. 5. Вода. 6. Ртуть. 7. Кислород. 8. Пшеница. 9. Россия. 10. Москва. 11. Ливень. */

    Так как счетчик $i начинался с нуля, при каждой итерации мы к его значению прибавляли единицу, чтобы список выглядел более привычным. После каждой итерцации значение счетчика увеличивалось на единицу, и когда оно достигло 11, цикл остановился. Теперь давайте взглянем на цикл do-while.

    Цикл do-while

    Цикл do-while отличается тем, что он работает по постусловию. Это означает, что код, заключенный в теле цикла, выполнится как минимум один раз. Синтаксис цикла такой:

    Do { тело_цикла; } while(условие);

    Этот цикл используется довольно редко при веб-программировании , но может он вам и понадобится в ваших сценариях.

    // Уже знакомый нам массив $array = array("Яблоко", "Картошка", "Арбуз", "Цветок", "Вода", "Ртуть", "Кислород", "Пшеница", "Россия", "Москва", "Ливень"); // Запускаем цикл $i = 1; do { print "
    ".$i.". ".$array[($i - 1)]."."; } while($i++ < count($array)); /* Результат работы цикла будет таким: 1. Яблоко. 2. Картошка. 3. Арбуз. 4. Цветок. 5. Вода. 6. Ртуть. 7. Кислород. 8. Пшеница. 9. Россия. 10. Москва. 11. Ливень. */

    Обратите внимание на отличие того, что мы выводим на экран в этом цикле от цикла for . Так как код в теле цикла do-while исполняется как минимум один раз, начальное значение счетчика было задано нулевым. Как работает цикл… выполняется код, затем проверяется условие. При первой итерации счетчик имел значение 1. После итерации единица оказалась меньше 11 (количества элементов). При последней итерации счетчик имел значение 11, а это никак не меньше 11. Цикл остановился. На do-while очень похож цикл while.

    Цикл while

    Цикл while является предусловным. Он выполнится только тогда, когда его условие истинно. То есть цикл while может и не выполниться вовсе. Его ситаксис таков:

    While(условие) { тело_цикла; }

    Наряду с циклом for цикл while используется очень часто.

    $array = array("Яблоко", "Картошка", "Арбуз", "Цветок", "Вода", "Ртуть", "Кислород", "Пшеница", "Россия", "Москва", "Ливень"); $i = 1; while($i++ <= count($array)) { print "
    ".$i.". ".$array[($i - 1)]."."; } /* Результат работы цикла будет таким: 1. Яблоко. 2. Картошка. 3. Арбуз. 4. Цветок. 5. Вода. 6. Ртуть. 7. Кислород. 8. Пшеница. 9. Россия. 10. Москва. 11. Ливень. */

    Цикл while для начинающих разработчиков наиболее прост и понятен.

    Цикл foreach

    Цикл foreach не похож на все перечисленные. Он появился в PHP4, предназначен для перебора массивов. Разработчику не нужно ничего выдумывать для этого. Всё легко и просто:

    /** * Цикл foreach следует понимать как «для каждого из». * Массив, обрабатываемый циклом, передается переменной, которая * доступна только внутри тела цикла. При желании можно обращаться * и к ключам массива. */ foreach(массив as элемент_массива) { тело_цикла; } foreach(массив as ключ_массива => элемент_массива) { тело_цикла; }

    Принцип работы цикла foreach совсем не такой как у циклов for , while и do-while . Поэтому для неопытных разработчиков довольно непросто понять что именно с его помощью можно (и даже нужно) делать.

    // Изменим уже знакомый нам массив. Сделаем его ассоциативным. $array = array("Яблоко" => "фрукт", "Картошка" => "овощь", "Арбуз" => "ягода", "Цветок" => "растение", "Вода" => "жидкость", "Ртуть" => "металл", "Кислород" => "газ", "Пшеница" => "хлеб", "Россия" => "наша Родина", "Москва" => "столица нашей Родины", "Ливень" => "попадос"); $i = 1; // Можем сделать так foreach($array as $v) { print "
    ".$i.". ".$v."."; $i++; } /* Получим такой вот неожиданный результат 1. фрукт. 2. овощь. 3. ягода. 4. растение. 5. жидкость. 6. металл. 7. газ. 8. хлеб. 9. наша Родина. 10. столица нашей Родины. 11. попадос. */ // А теперь сделаем иначе foreach($array as $k => $v) { print "
    ".$i.". ".$k." — это ".$v."."; $i++; } /* Теперь результат будет таким 1. Яблоко — это фрукт. 2. Картошка — это овощь. 3. Арбуз — это ягода. 4. Цветок — это растение. 5. Вода — это жидкость. 6. Ртуть — это металл. 7. Кислород — это газ. 8. Пшеница — это хлеб. 9. Россия — это наша Родина. 10. Москва — это столица нашей Родины. 11. Ливень — это попадос. */

    Понимаете как работает этот цикл? Если нет, можете задать вопрос в комментариях к материалу.

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

    $array = array("Яблоко" => "фрукт", "Картошка" => "овощь", "Арбуз" => "ягода", "Цветок" => "растение", "Вода" => "жидкость", "Ртуть" => "металл", "Кислород" => "газ", "Пшеница" => "хлеб", "Россия" => "наша Родина", "Москва" => "столица нашей Родины", "Ливень" => "попадос"); $i = 1; // Пример работы цикла с конструкцией continue foreach($array as $k => $v) { if($k != "Кислород") continue; print "
    ".$i.". ".$k." — это ".$v."."; $i++; } /* Результат будет таким 1. Кислород — это газ. */ $i = 1; // Пример работы цикла с конструкцией break foreach($array as $k => $v) { if($k == "Кислород") break; print "
    ".$i.". ".$k." — это ".$v."."; $i++; } /* Результат будет таким 1. Яблоко — это фрукт. 2. Картошка — это овощь. 3. Арбуз — это ягода. 4. Цветок — это растение. 5. Вода — это жидкость. 6. Ртуть — это металл. */