П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
Поиск по сайту:
                                                 
Главная

О проекте

Web-мастеру
     HTML & JavaScript
     SSI
     Perl
     PHP
     XML & XSLT
     Unix Shell

MySQL

Безопасность

Хостинг

Другое








Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 186216 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 87593 раз(а).

Учебник HTML.
Просмотров 79696 раз(а).

Руководство по PHP5.
Просмотров 50199 раз(а).

Хостинг через призму DNS.
Просмотров 57916 раз(а).

Подборка текстов стандартных документов.
Просмотров 49190 раз(а).

Учебник PHP - Самоучитель
Просмотров 56035 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 57420 раз(а).

Внешние атаки...
Просмотров 46763 раз(а).

Учебник PHP.
Просмотров 41098 раз(а).

SSI в примерах.
Просмотров 31393 раз(а).



 
 
| Добавить в избранное | Сделать стартовой | Помощь





Учебник РНР
Назад Глава 11. Структуры Управления Вперёд

foreach

В PHP 4 (не в PHP 3) имеется конструкция foreach, напоминающая аналоги из Perl и некоторых других языков. Она даёт простой способ итерировать по массиву. Есть два вида синтаксиса: второй является расширением первого и используется реже:

foreach(array_expression as $value) statement
foreach(array_expression as $key => $value) statement

Первый вид циклически проходит по массиву, заданному в array_expression. При каждом проходе значение текущего элемента присваивается переменной $value, а внутренний указатель массива передвигается на единицу (поэтому при следующем проходе вы просмотрите значение следующего элемента).

Второй вид выполняет то же самое, но ключ/key текущего элемента присваивается переменной $key.

Примечание: при старте foreach внутренний указатель массива автоматически устанавливается на первый элемент массива. Это означает, что вам не нужно вызывать reset() перед началом выполнения цикла foreach.

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

Примечание: foreach не поддерживает возможность подавления сообщений об ошибках с использованием '@'.

Заметьте, что следующие варианты функционально идентичны:

reset ($arr);
while (list(, $value) = each ($arr)) {
    echo "Value: $value<br>\n";
}

foreach ($arr as $value) {
    echo "Value: $value<br>\n";
}

Следующие варианты также функционально идентичны:

reset ($arr);
while (list($key, $value) = each ($arr)) {
    echo "Key: $key; Value: $value<br>\n";
}

foreach ($arr as $key => $value) {
    echo "Key: $key; Value: $value<br>\n";
}

Ещё несколько примеров использования:

/* foreach пример 1: только value */

$a = array (1, 2, 3, 17);

foreach ($a as $v) {
   print "Current value of \$a: $v.\n";
}

/* foreach пример 2: value (с key, выводимым для иллюстрации) */

$a = array (1, 2, 3, 17);

$i = 0; /* только для иллюстрации */

foreach($a as $v) {
    print "\$a[$i] => $v.\n";
    $i++;
}

/* foreach пример 3: key\ключ и value\значение */

$a = array (
    "one" => 1,
    "two" => 2,
    "three" => 3,
    "seventeen" => 17
);

foreach($a as $k => $v) {
    print "\$a[$k] => $v.\n";
}

/* foreach пример 4: многомерные массивы */

$a[0][0] = "a";
$a[0][1] = "b";
$a[1][0] = "y";
$a[1][1] = "z";

foreach($a as $v1) {
    foreach ($v1 as $v2) {
        print "$v2\n";
    }
}

/* foreach пример 5: динамические массивы */

foreach(array(1, 2, 3, 4, 5) as $v) {
    print "$v\n";
}

НазадОглавление Вперёд
for Вверхbreak


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





Copyright © 2005-2016 Project.Net.Ru