Главная Свежие Последние Лучшие Контактная информация  
 
 


Справочник языка » 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";
}

Добавить в закладки:

 

теги: foreach, массив
 

  Еще статьи
Типа данных: Массивы 192
Что такое PHP? 446
Массивы: array_push 189
Математические: bcscale 72
Массивы: array_key_exists 180
 


  Категории
Начнем 13
Справочник языка 89
Возможности 12
Функции 142
Расширение PHP 4.0 0
FAQ 0
 

  Теги
 

  Лучшее на сайте
Безопасность: Скрытие PHP 472
Что такое PHP? 446
Безопасность: Данные, отправляемые пользователем 373
foreach 354
Безопасность: Безопасность баз данных 333
Файл конфигурации 332
Операции: Строковые операции 310
Безопасность: CGI-двоичный 305
Безопасность: Безопасность файловой системы 297
Безопасность: Обзор 291
 

  Друзья сайта
телескопы, www.23-fevralya-podarki.ru
 

  Интересное
 

 
Использование материалов только при активной гиперссылке "http://iamcoder.net"
Copyright 2008 http://iamcoder.net Серия сайтов: "Стань умным!".